SpringMVC国际化_个人小总结

SpringMVC的国际化也是挻好用的,主要通过下面2个步骤实现基本的功能。

一、先在XML文件中配置上如下一段:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="net.kuhyygy.web.i18n.resource.Messages" />
</bean>


说明:
       1、上面的“value”里是找项目里src目录的路径。Messages是路径“net.kuhyygy.web.i18n.resource”下的各文件的开头字符,如下图所示
SpringMVC国际化_个人小总结_第1张图片
 2、Messages后面必须加上相应的地区标识符,格式必须如上图所示。

        3、如果上图的properties文件放到classpath根目录下,最初那段XML的配置写成下面那样即可,spring会自动寻找对应的文件。
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames" value="Messages" />
        </bean>


注:很多生产系统都需要长时间持续运行,系统重启会给运行带来很大的负面影响。这时,通过该实现类就可以解决国际化信息更新的问题。
 
<bean id=" messageSource "  class="org.springframework.context.support. ReloadableResourceBundleMessageSource">
        <property name="basenames">
           <list>
             <value> net.kuhyygy.web.i18n.resource.Messages</value>
           </list>
        </property>
        <!--① 刷新资源文件的周期,以秒为单位-->
        <property name="cacheSeconds" value="5"/> 
  </bean>

二、调用
先注入MesssageSource,
@Autowired
private MessageSource msg;
String s = msg.getMessage("SystemError", new Object[]{}, Locale.US);
String s2 = msg.getMessage("SystemError", new Object[]{}, Locale.CHINA);    即可。

你可能感兴趣的:(SpringMVC国际化_个人小总结)