Spring MVC的国际化
Spring MVC 的国际化是建立在 Java 国际化的基础之上的,Spring MVC 框架的底层国际化与 Java 国际化是一致的,作为一个良好的 MVC 框架,Spring MVC 将 Java 国际化的功能进行了封装和简化,开发者使用起来会更加简单、快捷。
由《Java国际化概念和使用介绍》教程可知国际化和本地化应用程序时需要具备以下两个条件:
- 将文本信息放到资源属性文件中。
- 选择和读取正确位置的资源属性文件。
下面讲解第二个条件的实现。
Spring MVC加载资源属性文件
在 Spring MVC 中不能直接使用 ResourceBundle 加载资源属性文件,而是利用 bean(messageSource)告知 Spring MVC 框架要将资源属性文件放到哪里。示例代码如下:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleM essageSource"><property name="basenames"><list><value>/WEB-INF/resource/messages</value><value>/WEB-INF/resource/labels</value></list></property>
</bean>
语言区域的选择
在 Spring MVC 中可以使用语言区域解析器 bean 选择语言区域,该 bean 有 3 个常见实现,即 AcceptHeaderLocaleResolver、SessionLocaleResolver和 CookieLocaleResolver。
1)AcceptHeaderLocaleResolver
根据浏览器 Http Header 中的 accept-language 域设定(accept-language 域中一般包含了当前操作系统的语言设定,可通过HttpServletRequest.getLocale 方法获得此域的内容)。
改变 Locale 是不支持的,即不能调用 LocaleResolver 接口的 setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale)方法设置 Locale。
2)SessionLocaleResolver
根据用户本次会话过程中的语言设定决定语言区域(例如用户进入首页时选择语言种类,则此次会话周期内统一使用该语言设定)。
3)CookieLocaleResolver
根据 Cookie 判定用户的语言设定(Cookie 中保存着用户前一次的语言设定参数)。
由上述分析可知,SessionLocaleResolver 实现比较方便用户选择喜欢的语言种类,教程中使用该方法进行国际化实现。
下面是使用 SessionLocaleResolver 实现的 bean 定义:
<bean id="localeResolver" class="org.springframework.web.servlet.il8n.SessionLocaleResolver"><property name="defaultLocale" value="zh_CN"></property>
</bean>
如果采用基于 SessionLocaleResolver 和 CookieLocaleResolver 的国际化实现,必须配置 LocaleChangeInterceptor 拦截器,示例代码如下:
<mvc:interceptors><bean class="org.springframework.web.servlet.il8n.LocaleChangeInterceptor"/>
</mvc:interceptors>
使用 message 标签显示国际化信息
在 Spring MVC 框架中可以使用 Spring 的 message 标签在 JSP 页面中显示国际化消息。在使用 message 标签时需要在 JSP 页面的最前面使用 taglib 指令声明 spring 标签,代码如下:
<%@taglib prefix="spring" uri="http://www.springframework.org/tags"%>
message 标签有以下常用属性。
- code:获得国际化消息的 key。
- arguments:代表该标签的参数。如果替换消息中的占位符,示例代码为“<spring:message code=“third” arguments=“888,999” />”,third对应的消息有两个占位符 {0} 和 {1}。
- argumentSeparator:用来分隔该标签参数的字符,默认为逗号。
- text:code 属性不存在,或指定的 key 无法获取消息时所显示的默认文本信息。
Spring MVC的国际化相关推荐
- Spring MVC国际化
一.Spring MVC国际化简介 程序国际化是商业系统的一个基本要求,因为今天的软件系统不再是简单的单机程序,往往都是一个开放的系统,需要面对来自全世界各个地方的访问者,因此,国际化成 ...
- Spring MVC注解、标签库、国际化
本篇文章主要介绍自己在学习Spring MVC常用注解.标签库.国际化遇到的一些问题,分享给大家,希望对你有所帮助. 问题一:指定扫描包的位置 应该将所有控制器类都放在基本包下,并且指定该扫描包,避免 ...
- Spring:项目国际化
前言 在我们开发 javaWEB 项目的时候,项目可能涉及到在国外部署或者应用,也有可能会有国外的用户对项目进行访问 ,那么在这种项目中,为客户展现的页面或者操作的信息就需要使用不同的语言,这就是我们 ...
- Spring MVC基础知识整理➣国际化和异常处理
概述 Spring框架为WEB项目提供了国际化以及异常处理机制.所谓的国际化也就是不同国籍,显示不同国籍的语言与符号.异常处理,也就是能够捕获WEB项目下的所有异常信息,并能处理记录这些异常信息机制. ...
- Spring MVC -- 国际化
在全球化的今天,现在比过去更需要编写可以在不同语言国家和地区部署的应用程序.在这方面,需要了解两个术语: 国际化:常常缩写为i18n,因为其单词internationalization以i开始,以n结 ...
- Spring MVC国际化(i18n)和本地化(L10n)示例
Spring MVC国际化(i18n)和本地化(L10n)示例 欢迎来到Spring Internationalization(i18n)教程.任何遍布全球的用户,国际化(i18n)或本地化(L10n ...
- spring mvc国际化_Spring MVC国际化(i18n)和本地化(L10n)示例
spring mvc国际化 Welcome to the Spring Internationalization (i18n) tutorial. Any web application with u ...
- Spring MVC异常统一处理(异常信息的国际化,日志记录)
JAVA EE项目中,不管是对底层的数据操作,还是业务层的处理过程,还是控制层的处理,都不可避免的会遇到各种可预知的(业务异常主动抛出).不可预知的异常需要处理.一般dao层.service层的异常都 ...
- Spring MVC框架有哪些优点
Spring MVC是Spring提供的一个实现了Web MVC设计模式的轻量级Web框架.它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异. Spring ...
最新文章
- 从“新基建”重新认识数据中心
- VTK:图片之ImageOpenClose3D
- QCon北京2016启动筹备 众多热点专题诚征演讲嘉宾
- 2023届春招实习拉钩一面凉经
- easyUI 展开DataGrid里面的行显示详细信息
- Linux中文件颜色所代表的属性和颜色
- VScode 配置 Java 环境
- 基于安卓的视频遥控小车——红外遥控部分
- FFmpeg —— 14.示例程序(八):音频编码器(PCM编码为AAC)
- Java歌手评分系统
- OV7725摄像头显示VGA/LCD
- Oracle BI产品线
- 基于Arcgis对流域数据的提取及计算
- fail2ban重启默认清除iptables 取消默认
- 记录自己的成长--个人日记1
- 为什么脑子里有电波声_为什么有时会听到“电波声”?
- 收藏这些网站,找PPT设计素材不再发犯难(图标、信息图、配色、免版权免费图片)...
- 【每日一题】字符串解码
- ARM 官方文档下载地址
- 职业生涯规划:如何选择一家适合自己的公司?
热门文章
- Iometer存储测试工具参数说明-图形主界面(整理)
- 从北大高材生被华为辞退中我们需要学到什么?
- vSphere 6.5 High Availability New Features – Proactive HA(vSphere 6.5高可用性新功能–主动HA)
- Spring Cloud与微服务学习总结(10)——Spring Cloud 常见优化项的总结
- Java基础学习总结(141)——Cron 表达式使用再总结
- angular代码规范_同样写代码,为何差距越来越大?
- php自学目录,PHP学习笔记(二) 了解PHP的基本语法以及目录结构
- java 定时任务spring_Spring实现定时任务调度
- 转://工作中 Oracle 常用数据字典集锦
- VMware下CentOS6.8配置GFS文件系统