1.messageSource
在SpringMVC中,不直接使用java.util.ResourceBundle,而是利用messageSource bean告诉SpringMVC国际化的属性文件保存在哪里.配置信息代码如下所示:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>message</value> <value>fkit</value> </list> </property> </bean>
上面的配置使用了ResourceBundleMessageSource类做为messageSource bean的实现.basenames属性用来指定国际化的属性文件名称,实例代码如下:
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames" value="message" /> </bean>
2.localeResolver
为用户选择语言区域时,最常用的方法是通过读取用户浏览器的accept-Language标题值.accept-language标题提供了关于用户浏览器语言的信息.选择语言区域的其他方法还包括读取HttpSession或者Cookie.
在SpringMVC中选择语言区域,可以使用语言区域解析器.SpringMVC提供了一个语言区域解析器接口LocaleResolver,该接口的常用实现类都在org.springframework.web.servlet.i18n包下面,包括:
AcceptHeaderLocaleResolver (读取accept-language) SessionLocaleResolver(session配置) CookieLocaleResolver(cookie配置)
其中,AcceptHeaderLocaleResolver是默认的,也是最容易使用的语言区域解析器.使用他,SpringMVC会读取浏览器的accept-language标题,来确定使用哪个语言区域.AcceptHeaderLocaleResolver可以不用显式配置,而SessionLocaleResolver和CookieLocaleResolver需要手动显式配置.
3.message标签
在SpringMVC中显式本地化消息通常使用Spring的message标签.使用message标签,需要在JSP页面最前面使用taglib指令导入Spring的标签库,如下所示:
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
属性
|
描述
|
arguments
|
标签的参数,可以是一个字符串,数组或对象
|
argumentsSeparator
|
用来分隔该标签参数的字符
|
code
|
获取消息的key
|
htmlEscape
|
是否对HTML进行转义
|
JavaScriptEscape
|
是否对JavaScript进行转义
|
message
|
MessageSourceResolvable参数
|
scope
|
保存var属性中定义的变量的作用范围域
|
text
|
如果code属性不存在,所显示的默认文本
|
var |
用于保存消息的变量
|