SpringMVC国际化相关概念

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
用于保存消息的变量