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本地化默认英文

spring本地化默认英文_Spring3国际化和本地化相关推荐

  1. Spring和JSF集成:国际化和本地化

    如果您正在开发针对多种语言的JSF应用程序,那么您可能很熟悉<f:loadBundle>标记. 即使您的应用程序不支持使用消息包的国际化仍然是一个好主意. 在<f:loadBundl ...

  2. Qt Quick的国际化和本地化

    Qt Quick的国际化和本地化 Qt Quick的国际化和本地化 国际化您的应用程序 1.对所有文字用户界面字符串使用qsTr() 2.为翻译器添加上下文 3.歧义相同的文本 4.用于%x将参数插入 ...

  3. Flask 教程 第十三章:国际化和本地化

    本文转载自:https://www.jianshu.com/p/e2923f4042d6 这是Flask Mega-Tutorial系列的第十三部分,我将告诉你如何扩展Microblog应用以支持多种 ...

  4. web框架flask(12)——国际化和本地化

    2019独角兽企业重金招聘Python工程师标准>>> 国际化和本地化 今天的文章的主题是国际化和本地化,通常简称 I18n 和 L10n.我们想要我们的 microblog 应用程 ...

  5. jsf集成spring_Spring和JSF集成:国际化和本地化

    jsf集成spring 如果您正在开发针对多种语言的JSF应用程序,那么您可能很熟悉<f:loadBundle>标记. 即使您的应用程序不支持使用消息捆绑包进行国际化仍然是一个好主意. 在 ...

  6. Spring3国际化和本地化

    我最近想将Spring 3提供的国际化和本地化功能添加到我当前的项目之一中. 我浏览了Spring文档,然后在Internet上搜索以找到一些资源. 但是我找不到能够满足客户要求的资源. 大多数教程都 ...

  7. 3.5 国际化与本地化

    国际化和本地化 国际化,简写为i18n(译者注:"国际化"这个词有20个字母,去尾去首中间有18个),是一种无需改动就能适应各种语言的设计代码.本地化是指将显示的文本转化为用户语言 ...

  8. Flask 教程 第十三章:国际化和本地化 1

    本文转载自:https://www.jianshu.com/p/e2923f4042d6 这是Flask Mega-Tutorial系列的第十三部分,我将告诉你如何扩展Microblog应用以支持多种 ...

  9. Android 国际化与本地化探索

    Android 国际化与本地化探索 1.翻译注意事项 1.1.尽量避免使用简写! 1.2.严禁回车.换行等! 1.3.尽量避免使用&.'."等特殊符号! 1.4.注意空格的使用! 2 ...

最新文章

  1. Hyper-v 3.0虚拟化平台群集共享磁盘无法failover的故障
  2. Python培训教程:Python内置数据结构之双向队列
  3. 计算机组成原理重要知识,计算机组成原理重要知识点解析
  4. 《java多线程编程实战指南 核心篇》读书笔记一
  5. [Math][Algebra]--线性代数中的各种空间
  6. android apt最新版本,解决Android studio 2.3升级到Android studio 3.0 后apt报错问题
  7. Qt MQTT安装步骤记录
  8. 玩转SpringSession,重要知识点全面剖析!
  9. 【重识 HTML + CSS】基本 CSS 属性
  10. tb文件 vivado_Vivado FPGA设计基础操作流程:Vivado的基本使用
  11. AngularJS Providers 详解
  12. android mvvm点击事件,c# – MVVMCross:如何将Xamarin.Android事件绑定到ViewModel命令
  13. Zabbix篇四:钉钉机器人报警
  14. unity中调用dll文件总结
  15. python 安装talib包
  16. 古今地名对照总表 按笔划数排序 强烈推荐的资料
  17. css中aspect,CSS属性之aspect-ratio
  18. 2017年国家公务员考试行测错题集(省级)
  19. 华为HCIP-DATACOM(821)411-440
  20. 国庆星期日 1949年的国庆节(10月1日)是星期六。 今年(2012)的国庆节是星期一。

热门文章

  1. 介绍Java中的内存泄漏
  2. 面象对象设计6大原则之二:开放封闭原则
  3. SpringMVC表单验证器的使用
  4. SpringMVC @Transactional的陷井大坑引发No Session found for current thread
  5. Failed to load http://localhost:3000/products: The 'Access-Control-Allow-Origin' header has a value
  6. Spring依赖注入和控制反转
  7. 这是什么操作?java中的变量竟然可以先使用后声明?
  8. PhotoShop基础知识
  9. 初识Windows程序
  10. Photoshop基本操作