spring本地化默认英文_Spring3国际化和本地化

spring本地化默认英文

我最近想将Spring 3提供的国际化和本地化功能添加到我当前的项目之一中。 我浏览了Spring文档,然后在Internet上搜索以找到一些资源。
但是我找不到能够满足客户要求的资源。 大多数教程都像hello world应用程序,它提供了基本的理解。 即使是spring文档,也没有提供有关将此功能集成到我们自己的项目中的详细说明。 专业的开发人员可以从spring文档中挑选东西。 但是对于其他人,则必须付出额外的努力来使事情正常运行。 通过本教程,我将解释大多数客户期望的非常实际的情况。
要求
我在我的应用程序中使用Spring Security。 用户应该能够从登录页面中选择语言,该页面被指定为spring security XML文件的“登录页面”。 我在登录页面的右上角提供了“英语”,“中文”,“德语”和“西班牙语”链接,以选择语言。 用户可以选择语言并通过提供用户名和密码来登录系统。 然后,整个应用程序应来自所选语言。 同样,从登录页面选择语言时,登录页面的内容也应更改。
弹簧配置
第一步,我必须在dispatcher-servlet.xml中配置LocaleChangeInterceptor拦截器 文件。 此XML文件名将根据web.xml文件中分配给DispatcherServlet的名称进行更改。 我已将“ dispatcher”作为DispatcherServlet的名称。 所以我应该在/ WEB-INF文件夹下创建' dispatcher-servlet.xml '文件。 我的应用程序正在Tomcat 7上运行。
我无法像在Spring文档中那样通过声明此拦截器的方式来使其工作。 登录之前更改语言环境的请求(即,从登录页面开始)未被语言环境更改拦截器拦截。 因此,我不得不宣布它为休假。
<mvc:interceptors><mvc:interceptor><mvc:mapping path="/doChangeLocale*"/><bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" ><property name="paramName" value="locale" /></bean></mvc:interceptor>
</mvc:interceptors>
LocaleChangeInterceptor ”将拦截请求更改语言环境的请求,并在“ SessionLocaleResolver ”的帮助下将相应的语言环境代码存储在会话中。
接下来,我们将研究如何在“ dispatcher-servlet.xml”文件中声明“ SessionLocaleResolver”。
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"><property name="defaultLocale" value="en" />
</bean>
SessionLocaleResolver将在当前会话中存储区域设置,并为当前会话的每个后续用户请求解析该区域设置。
接下来,我们必须声明消息资源bean。
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"><property name="useCodeAsDefaultMessage" value="true" /><property name="basenames"><list><value>classpath:messages</value></list></property><property name="cacheSeconds" value="0" /><property name="defaultEncoding" value="UTF-8"></property>
</bean>
我的应用程序应支持4种语言。 因此,我将4个属性文件添加到“ resources”文件夹中(最终,所有这些属性文件应位于“ classs”文件夹中),如下所示。
messages_de.properties –德语
messages_en.properties –英文
messages_zh.properties –中文
messages_es.properties –西班牙语
注意,所有文件名都应以您指定为消息资源bean的'basenames'属性的文本开头。
Spring 3安全配置在此实现中非常重要。 请记住,当您单击登录页面上的任何区域更改链接时,您尚未通过身份验证。 但是,该请求仍应由“ LocaleChangeInterceptor”拦截。 否则,语言将不会按预期更改。 因此,应该允许任何匿名用户发出区域更改请求,并且该请求应通过“ LocaleChangeInterceptor”。
仔细研究我的spring安全配置。
<http auto-config="false"><form-login login-page="/login.jsp"  authentication-failure-url="/login.jsp?login_error=true" default-target-url="/mainMenu.htm"/><logout logout-success-url="/login.jsp"/><intercept-url pattern="/doChangeLocale**" access="ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER"/><intercept-url pattern="/**" access="ROLE_ADMIN,ROLE_USER"  />
</http>
用户可以通过login.jsp文件提供用户名和密码来登录系统,并且该页面具有相应的链接以更改区域设置。 当用户未经身份验证而对受保护资源提出任何请求时,该用户将被重定向到login.jsp页面。 上面的配置说,所有传入应用程序的请求都应来自经过身份验证的用户,并且除了“ / doChangeLocale **”请求外,还应授权该用户。
拦截URL'/ doChangeLocale **'非常重要。 否则,语言环境更改拦截器将不会拦截更改语言环境的请求,并且最终语言环境也将不会更改。
以下是放置在login.jsp文件中的语言环境更改链接。
<a href="<%=request.getContextPath()%>/doChangeLocale?locale=en">English</a>
<a href="<%=request.getContextPath()%>/doChangeLocale?locale=de">German</a>
<a href="<%=request.getContextPath()%>/doChangeLocale?locale=es">Spanish</a>
<a href="<%=request.getContextPath()%>/doChangeLocale?locale=zh">Chinese</a>

希望这对您有帮助。

参考: Spring3国际化和本地化–不是“ Hello World”,而是来自JCG合作伙伴 Semika loku kaluge(来自Code Box博客)的“实用” 。


翻译自: https://www.javacodegeeks.com/2012/07/spring-3-internationalization-and.html

spring本地化默认英文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我所知道的Ribbon库

QT&#xff1a; http://www.devmachines.com/qtitanribbon-overview.html http://qribbon.sourceforge.net MFC、c#可以到微软官方下载 System.Windows.Forms.Ribbon35.DLL - Type: Managed DLL - An Open Source Ribbon Control for .NET WinForm - Read more: http://…

JUnit 5 –动态测试

在定义测试时&#xff0c;JUnit 4有一个很大的弱点&#xff1a;它必须在编译时发生。 现在&#xff0c;JUnit 5将解决此问题&#xff01; Milestone 1 刚刚发布 &#xff0c;并带有全新的动态测试&#xff0c;该动态测试允许在运行时创建测试。 总览 本系列中有关JUnit 5的其他…

win8.1自带metro应用不工作解决办法

输入如下命令 powershell -ExecutionPolicy Unrestricted Add-AppxPackage -DisableDevelopmentMode -Register $Env:SystemRoot\WinStore\AppxManifest.XML powershell -ExecutionPolicy Unrestricted Add-AppxPackage -DisableDevelopmentMode -Register $Env:SystemRoot\Im…

python基础-网络基础知识和网络编程

之前对这一块的知识,总是记不住,这次正好有系统的学习,所以决定好好的梳理一下 1. 计算机网络基础知识 1.1 互联网协议和OSI模型 *协议模型互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层,如下图所示 *每层运行常见物理设备 *每层运行常见的协议 1.2 基础网络概念…

HDU 1999 不可摸数

不可摸数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 5334 Accepted Submission(s): 1405 Problem Descriptions(n)是正整数n的真因子之和&#xff0c;即小于n且整除n的因子和.例如s(12)1234616.如果任…

C语言返回文件大小的功能(fseek和ftell的使用)

需求&#xff1a;有时候读文件时&#xff0c;需要知道文件的字符总的个数&#xff0c;可能是为了提前定义缓冲区大小或者拷贝文件等等。也可以用于动态创建数组。在进行这两个问题之前&#xff0c;先来了解一下两个函数&#xff0c;这两个函数配合就能够实现计算大小的功能。函…

自定义相册、九宫格显示图片

一 自定义相册 结合Glide图片库&#xff0c;加载显示本地图片&#xff0c;并可以实现单选&#xff0c;多选&#xff0c;预览功能。特点 加载最近新增图片&#xff0c;GridView显示分文件夹选择图片支持单选&#xff0c;多选&#xff08;最大9张&#xff09;支持大图预览以库的形…

设计一代码,逆置带头结点的动态单链表L

有两种方法&#xff1a; 一是&#xff1a;用头插法建立单链表&#xff0c;自然而然就实现了逆置的动态链表。 代码&#xff1a; #include<stdio.h> #include<malloc.h> typedef int datatype; typedef struct node {datatype data;struct node * next; }linklist…

dll生成lib

来自http://suddymail.org/show-160-1.html没有尝试过&#xff0c;仅供参考。其他链接&#xff1a;http://hi.baidu.com/songxiuying/item/af67755203840f948d12ed6d为无LIB的DLL制作LIB函数符号输入库 本文介绍了在VC中针对无LIB时的DLL隐式链接,制作可供VC使用的LIB函数符号…

maven使用junit3_JUnit,Logback,带有Maven 3的Maven

maven使用junit3在本系列中&#xff0c;我们已经学习了建立基本的Spring MVC应用程序并学习了如何在Spring MVC中处理表单 。 现在该讨论更多涉及的话题了。 但是&#xff0c;在我们涉足更深的领域之前&#xff0c;让我们先进行一些基础设置。 单元测试 我不是TDD传播者。 我在…

LeetCode(90):子集 II

Medium&#xff01; 题目描述&#xff1a; 给定一个可能包含重复元素的整数数组 nums&#xff0c;返回该数组所有可能的子集&#xff08;幂集&#xff09;。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [[2],[1],[1,2,2],[2,2],[1,2],[] ] 解题思路&…

MFC程序在其他机器运行

为了保证MFC程序能够在没有安装VS的机器上运行&#xff0c;可以采用如下方法。1. 单个的小程序&#xff0c;可以静态编译MFC&#xff0c;但不适用于有很多dll的工程。2. 拷贝VS安装目录Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.MFC下的4个文件和Microsoft …

ACM搜索题目总结

ACM搜索题目总结 格式说明&#xff1a;题目名后面列出个人此题的大致难度&#xff08;对菜鸟而言&#xff09; POJ 1069 -The Bermuda Triangle(难) http://acm.pku.edu.cn/JudgeOnline/problem?id1069 题意&#xff1a;用给定三角型填充六边形 解法&#xff1a;此题的思想上精…

JPA中按身份引用

在上一篇文章中 &#xff0c;我提到我选择通过其主键而不是类型来引用其他聚合。 在处理大型或复杂域模型时&#xff0c;我通常使用这种方法&#xff08;也称为断开域模型&#xff09;。 在这篇文章中&#xff0c;让我尝试进一步解释如何在JPA中完成它。 请注意&#xff0c;生成…

在idea下开发出现404错误

用idea开发时&#xff0c;我们一般要设置project strucure里的Modules-Sources,里面对应的有Sources,tests,Resources,Test Resources&#xff0c; Excluded。 同时也可以在maven的pom里面build标签里设置。 <resource><directory>src/main/webapp</directory&g…

MFC利用控制台输出调试信息的方法

VS2010中只要输入以下信息即可&#xff1a;editbin /SUBSYSTEM:CONSOLE $(OUTDIR)$(TargetName).exeVC6.0稍微复杂&#xff1a;打开菜单“Project”-“Setting”&#xff08;或者Alt-F7&#xff09;&#xff0c;打开选项卡“Post-builder step”&#xff08;Post-build步骤&…

一念成佛,一念成魔

一念成佛&#xff0c;一念成魔 前几天&#xff0c;因我与寝友的一次错误导致电脑系统崩溃&#xff0c;连开机都开不了了。可我发现我并不是很生气&#xff0c;只是用玩笑话调侃了他一下。后来想想&#xff0c;要是放在以前&#xff0c;我一定会大发脾气&#xff0c;几天都不去理…

Jquery操作基本筛选过滤器

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>层级选择器</title><link rel"stylesheet" href"../../css/style.css" type"text/css"/><script type"text/javascript…

nodejs微信小程序+python+PHP计算机网络在线考试系统-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

Visual C++利用互斥量同步线程实现文件读取进度条

忘了原文的位置了。 一、前言 文件读取进度条的实现可以有很多种方法,常用的是在读取文件的过程中隔一定时间向对话框发送消息以控制进度条的位置,但是这种方法很难确定隔多少时问发送一个消息,因为文件的大小是不确定的,时间间隔长了可能文件已经读取完了还没有发送消…