Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本

首先,建立一个描述message的XML文件,名为messages.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"        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">        <property name="basenames"> 
            <list> 
                <value>org/rjstudio/spring/properties/messages</value> 
            </list> 
        </property> 
    </bean> 
</beans> 
    
    这个Bean的id是定死的,只能为“messageSource”。这里的Class需要填入MessageSource接口的实现。其中,在我看的书中只提及了两个类,一个是:ResourceBundleMessageSource,另一个则是ReloadableResourceBundleMessageSource。其中,后者提供了无需重启就可重新加载新配置的特性。 
    
    list节点的value子节点中的body值“org/rjstudio/spring/properties/messages”,是指org.rjstudio.spring.proerties包下的以messages为主要名称的properties文件。比如说,以Locale为zh_CN为例,Spring会自动在类路径中在org.rjstudio.spring.properties包下按照如下顺序搜寻配置文件并进行加载: 
    
    
    
    接下来,让我们在org.rjstudio.spring.properties下,建立两个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("messages.xml"); 
            Object[] arg = new Object[] { "Erica", Calendar.getInstance().getTime() }; 
            String msg = ctx.getMessage("userinfo", arg,Locale.CHINA); 
            System.out.println("Message is ===> " + msg); 
        } 
    } 
    
    最后输出的结果是:Message is ===> 当前登录用户:[Erica] 登录时间:[07-6-8 上午10:20] 
    
    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:[6/8/07 10:59 AM] 
    
    OK,到这里,就到这里。

转载于:https://www.cnblogs.com/toSeeMyDream/p/4108651.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简述进程间通信方式

进程间通信方式通常有共享内存 信号量 消息队列 管道 FIFO Socket等几种。 共享内存的模型&#xff0c;它是最有效率的进程间通信方式进程间信号量是进程间同步主要方式&#xff0c;信号量操作为负的时候&#xff0c;进程阻塞。直到信号量为正 内存映射是一种特殊的共享内存…

辅助的写与数据库交互的XML文件的类

现在企业级WEB应用中与数据库交互的XML文件都是通过插件自动生成的&#xff0c;不过有些时候修改比较老的项目的时候也是需要手动的来做这一动作的&#xff01;如下代码就是一个实现上述的功能的辅助类&#xff0c;在此记录一下以备后用&#xff01; package com.cn.common.uti…

160 - 8 Andrnalin.1

环境&#xff1a; Windows xp sp3 打开&#xff0c;就一个Key输入框&#xff0c;输入&#xff1a;goodname&#xff0c;点OK&#xff0c;弹出一个 不明文字的框&#xff0c;反正肯定不对。 查壳&#xff0c;无壳的vb程序。OD载入&#xff1a; 查找字串&#xff0c;翻到最下…

C++ 虚函数表解析

C 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C中的虚函数的作用主要是实现了多态的机制。关于多态&#xff0c;简而言之就是用父类型别的指针指向其子类的实例&#xff0c;然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”&#x…

160 - 9 Andrnalin.2

环境&#xff1a; Windows xp sp3 打开&#xff0c;这次升级了&#xff0c;有个Name和一个Key&#xff0c;输入&#xff1a; Name&#xff1a;goodname Key&#xff1a;12345678 肯定错误。拿到错误信息的字符串 查壳&#xff0c;无壳的VB程序。 直接OD载入&#xff0c;字…

[PALAPALA] 无题 - 外来的和尚会念经

手机, 现代人响当当的必须品, 尤其在移动App流行的大环境之下显得更为重要. 我, 并不是一个重度依赖手机的机粉. 但我对手机的差异化敏感度很高... 安卓手机, 我不喜欢, 因为满大街泛滥&#xff0c;折腾过多... 苹果手机, 我不喜欢, 因为满大街泛滥&#xff0c;bug过多..... 相…

HTTP协议 (四) 缓存

HTTP协议 (四) 缓存 阅读目录 缓存的概念缓存的好处Fiddler可以方便地查看缓存的header如何判断缓存新鲜度通过最后修改时间&#xff0c;判断缓存新鲜度与缓存相关的headerETag浏览器不使用缓存直接使用缓存&#xff0c;不去服务器端验证如何设置IE不使用缓存公有缓存和私有缓存…

160 - 10 Andrénalin.3

环境&#xff1a; Windows xp sp3 打开&#xff0c;是只有一个key&#xff0c;输入个goodname试试&#xff0c;错误。。。记下错误信息 查壳&#xff0c;无壳的VB程序。 查找字符串&#xff1a; 00402036 UNICODE "kXy^rO|*yXo*m\kMuOn*" 00402090 UNICODE &qu…

160 - 11 Andrnalin.4

环境&#xff1a; Windows xp sp3 打开&#xff0c;这次的界面炫酷多了&#xff0c;就像输保险箱密码。 旁边一个“UNREGISTRIERT”表示还没注册 输入个666666&#xff0c;没反应又没有确认按钮&#xff0c;可以猜测是用timer来检测输入的正确性 查壳&#xff0c;无壳的VB程…

ZooKeeper启动过程2:FastLeaderElection

前一篇文章中说到&#xff0c;启动ZooKeeper集群时&#xff0c;需要分别启动集群中的各个节点&#xff0c;各节点以QuorumPeer的形式启动&#xff0c;最后到达startLeaderElection和lookForLeader。 先说startLeaderElection 首先&#xff0c;初始化节点自身的currentVote【当前…

C++编程调试秘笈(第1次阅读)

阅读时间&#xff1a; 2017-4-17 --- 2017-4-19 第一次阅读《C编程调试秘笈》&#xff0c;可能是因为对项目开发的经验不足&#xff08;最近只是在做简单的五子棋&#xff09;&#xff0c;使得对里面很多的知识点了解得不是很深。 《C编程调试秘笈》讲的内容个人觉得与调试的技…

Web Component 文章

周末无意中了解了Web Component的概念。 http://blog.amowu.com/2013/06/web-components.html http://www.v2ex.com/t/69389 http://www.infoq.com/cn/news/2013/06/webcomponents Shadow DOM http://www.toobug.net/article/what_is_shadow_dom.html http://www.html5rocks.co…

遮罩效果 css3

CSS3提供了遮罩效果&#xff0c;这是以前CSS2中比较难实现的一个新特性&#xff0c;配合SVG或者canvas同样也可以实现遮罩效果&#xff0c;他的效果就如下图所示: 简单的说就是在一个层上面加一个过滤层&#xff0c;过滤层透明度越低&#xff0c;底层就显示的越多&#xff0c;反…

调试九法(第1次阅读)

阅读时间&#xff1a; 2017年4月19日 --- 2017年4月22日 第一次看到这本书的时候&#xff0c;是在网上看到它被评论得十分优秀&#xff0c;只要掌握了书中的方法&#xff0c;就能找到所有的BUG。我就是这样被吸引过来的。 因为是调试9法&#xff0c;所以总共讲了调试的时候注意…

Oracle11g密码区分大小写导致database link无法连接

Oracle11g的密码默认是区分大小写的&#xff0c;该特性通过初始化参数sec_case_sensitive_logon控制&#xff0c;默认TRUE表示区分大小写。但是Oracle11g之前的版本密码都是不区分大小写的&#xff0c;所以在Oracle10g等以前版本创建到Oracle11g的database link时&#xff0c;可…

OC-深浅复制

【OC学习-26】对象的浅拷贝和深拷贝——关键在于属性是否可被拷贝 对象的拷贝分为浅拷贝和深拷贝&#xff0c;浅拷贝就是只拷贝对象&#xff0c;但是属性不拷贝&#xff0c;拷贝出来的对象和原来的对象共用属性&#xff0c;即指向同一个属性地址。深拷贝则相当于不仅拷贝了一个…

计算机科学导论(第一次阅读)

时间&#xff1a; 2017年4月22日----2017年4月26 这是一本计算机入门书籍&#xff0c;粗略地描述了计算机各个方面的内容。当然对于一些十分复杂的知识&#xff0c;也仅仅是大概描述了这方面知识的一些了解知识。

配置SQLServer,允许远程连接

需要别人远程你的数据库&#xff0c;首先需要的是在一个局域网内&#xff0c;或者连接的是同一个路由器&#xff0c;接下来就是具体步骤&#xff1a; &#xff08;一&#xff09;首先是要检查SQLServer数据库服务器中是否允许远程链接。其具体操作为&#xff1a; &#xff08;1…

弹出打开/保存文件对话框 选择文件夹对话框

打开/保存文件对话框: CFileDialog::CFileDialog(BOOL bOpenFileDialog, //为TRUE则显示打开对话框&#xff0c;为FALSE则显示保存对话文件对话框LPCTSTR lpszDefExt NULL, //默认的文件扩展名LPCTSTR lpszFileName NULL, //默认的文件名DWORD dwFlags OFN_HIDEREADONLY | O…

SharePoint 2013的100个新功能之网站管理(一)

一&#xff1a;设置盘 网站操作现在被替换为新的&#xff08;设置&#xff09;盘子。一些新的操作像添加一个应用、添加一个页面或设计管理器被添加而像创建网站则从菜单中移除了。 二&#xff1a;移除以其他用户身份登录 在SharePoint 2013中&#xff0c;从用户欢迎菜单中移除…