Spring 国际化例子

建立一个描述message的XML文件,名为spring.xml
                                  
                              <?xml version="1.0" encoding="UTF-8"?>
                              <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
                              "http://www.springframework.org/dtd/spring-beans.dtd">
                              <beans>

                                  <!-- 资源国际化测试 -->

   <!--   这个Bean的id只能为“messageSource” -->

                                  <bean id="messageSource"   class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 

<!-- 参数cacheSeconds就是定义每5秒钟自动刷新一次资源文件,在真实的应用中,刷新周期不能太短,否则频繁的刷新将带来性能上的负面影响,一般不建议小于30分钟,cacheSeconds默认值为-1表示永不刷新 -->

                                      <property name="cacheSeconds" value="-1"/>

<property name="basenames">

                                          <list>                                              

                               <!--  list节点的value子节点中的body值是指/WEB-INF/languages/test/messages包下的以messages为主要名称的properties文件。Spring会自动在/WEB-INF/languages/test/messages包下搜寻配置文件并进行加载 -->

<value>/WEB-INF/languages/test/messages</value>

                                          </list>
                                      </property>
                                  </bean>

                              </beans>


在/WEB-INF/languages/test/messages下,建立两个messages的属性文件。一个名为messages_zh_CN.properties,另一个为messages_en_US.properties,分别对应国际化中的中国和美国。

在这两个属性文件中分别建立一个userinfo属性。
                   中国为:userinfo=当前登陆用户[{0}] 登陆时间[{1}]
                   美国为:userinfo=current login user:[{0}] login time:[{1}]


接下来可以写段代码测试。建个类,写个测试Main方法。


 public class MessageTest {
                                      public static void main(String[] args) {
                                          ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");
                                          Object[] arg = new Object[] { "张三",  Calendar.getInstance().getTime() };
                                          String msg =  ctx.getMessage("userinfo", arg,Locale.CHINA);
                                          System.out.println("Message is ===> "  + msg);
                                      }
                                  }


 最后输出的结果是:Message is ===> 当前登录用户:[张三]    登录时间:[14-3-23 上午12:10]
                                  
 ctx.getMessage("userinfo",   arg,Locale.getDefault());这个方法,传入的三个参数,第一个是properties文件中对应的名。arg为一个对象数组,我们在properties里面放置了两个变量,[{0}]和[{1}],Spring会为我们给它们赋值。而最后则需要传入一个Local。这里用Locale.CHINA代表中国。


如果我们用Locale.US,则输出会变为: Message is ===> current login user:[Erica]  login time:[3/23/14 12:10 AM]


                                  

Spring 国际化例子,布布扣,bubuko.com

Spring 国际化例子

上一篇:apache ab.exe压力测试


下一篇:ExtJS4.1+MVC3+Spring.NET1.3+EF5 整合十:TreePanel 之 管理菜单