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]


                                  
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值