疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Spring MVC国际化相关知识


 

 
5.1 Spring MVC国际化的相关知识††
 
5.1.1 messageSource在Spring MVC中,不直接使用java.util.ResourceBundle,而是使用利用名为messageSource的 bean告诉Spring MVC国际化的属性文件保存在哪里。配置信息代码如下所示:
 
<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 属性用来指定国际化的属性文件名称。如果项目中只有一组属性文件,则可以使用basenam来指定国际化的属性文件名称,实例代码如下:
 
<bean id="messageSource"  
        class="org.springframework.context.support.ResourceBundleMessageSource"
p:basenames="message">  
</bean>
复制代码
 
 
5.1.2 localeResolver
 
为用户选择语言区域时,最常用的方法是通过读取用户浏览器的accept-language标题值,accept-language标题提供了关于用户浏览器语言的信息。选择语言区域的其他方法还包括读取HttpSession或者Cookie。
在Spring MVC中选择语言区域,可以使用语言区域解析器。Spring MVC提供了一个语言区域解析器接口LocaleResolver,该接口的常用实现类都在org.springframework.web.servlet.i18n包下面,包括:
AcceptHeaderLocaleResolver
SessionLocaleResolver
CookieLocaleResolver
其中,AcceptHeaderLocaleResolver是默认的,也是最容易使用的语言区域解析器。使用它,Spring MVC会读取浏览器的accept-language标题,来确定使用哪个语言区域。AcceptHeaderLocaleResolver可以不用显式配置,而SessionLocaleResolver和CookieLocale- Resolver需要手动显式配置。
 
 
5.1.3 message标签
 
在Spring MVC中显示本地化消息通常使用Spring的message标签。使用message标签,需要在JSP页面最前面使用taglib指令导入Spring的标签库,如下所示:
<%@taglib prefix= "spring" uri= "http://www.springframework.org/tags" %>
复制代码
 
message标签的属性如表5.1所示,所有属性都是可选的。
 
表5.1 message标签的属性
 
  属性
   描述
  
  arguments
   标签的参数,可以是一个字符串、数组或对象
  
  argumentSeparator
   用来分隔该标签参数的字符
  
  code
   获取消息的key
  
  htmlEscape
   boolean值,表示被渲染的值是否应该进行HTML转义
  
  javaScriptEscape
   boolean值,表示被渲染的值是否应该进行javaScript转义
  
  message
   MessageSourceResolvable参数
  
  scope
   保存var属性中定义的变量的作用范围域
  
  text
   如果code属性不存在,所显示的默认文本
  
  var
   用于保存消息的变量