在struts里,已经在filter里设置 Globals.LOCALE_KEY 的情况下,为什么<bean:message>还只输出zh_CN里的内容呢 我也发现好像不好用,我用了tiles,有的部分显示zh_CN,而有些部分却显示en 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 修改ie浏览器-->属性-->languages 设置成english的试哈!! 是这样滴先了解一下资源文件扩展名的定义ApplicationResources.properties //默认文件ApplicationResources_zh.properties //中文(包括简体中文繁体中文等)ApplicationResources_zh_CN.properties //中国中文ApplicationResources_zh_TW.properties //台湾中文ApplicationResources_en.properties //英文(包括美国英国等英语国家)ApplicationResources_en_US.properties //美国英文一般jsp中可以用<bean:message>来输出,在Action中可以用Messages对象获取文本输出。在struts中使用资源文件的规则是这样的:首先根据用户浏览器语言来找,我们国内的浏览器中语言一般设置为zh_CN,所以struts会先寻找ApplicationResources_zh_CN.properties这个文件,如果找不到就会去找ApplicationResources_zh.properties这个文件。如果还是找不到,就会根据应用服务器的语言来找(也就是你运行struts程序的这台机器),如果你的应用就跑在你自己用的这台机器上,应该是简体中文的操作系统吧?那么struts就开始找ApplicationResources_zh_CN.properties,找不到就接着找ApplicationResources_zh.properties。如果还是找不到,这才使用默认资源文件,也就是ApplicationResources.properties。所以楼主的这个问题,你应该是在你自己的中文操作系统机器上运行struts并用浏览器来访问的吧,而且你可能只有ApplicationResources.properties和ApplicationResources_zh_CN.properties这两个文件,不管你的浏览器语言怎么变,struts找不到你指定的语言,就使用服务器的语言,仍然还是中国中文,所以一直输出ApplicationResources_zh_CN.properties这个文件的内容;当你把它删除,struts也找不到服务器语言对应的文件,只能使用默认的ApplicationResources.properties了。另外说一点,使用jstl标签也可以输出资源文件,记得是<fmt:message>这个标签,它和<bean:message>的功能基本类似,不过寻找资源文件的规则就不同了,先找用户浏览器的语言,找不到就直接使用默认资源文件,而不管服务器的语言。如果在一个应用中即使用<fmt:message>又使用<bean:message>,但找不到浏览器语言时,两种标签就有两种处理模式,也就会发生一楼的同志说的那种情况,即有中文又有英文。所以还是不要混用的好。 hibernate 优化 上传到数据库的路径以及乱码问题 推荐关于J2EE大型企业项目分析的书籍(银行,电力,保险) hibernate.hbm.xml异常 请问高手:JSP如何用鼠标从网页中得到数据和格式 java编程的困惑 弱问下,xml与html有什么区别? 求J2EE架构师的必经阶段! 请高手帮忙分析下程序! 这是什么意思? 请问一下j2ee1.3的类是放在哪个文件夹下..... 一个websphere问题
先了解一下资源文件扩展名的定义
ApplicationResources.properties //默认文件
ApplicationResources_zh.properties //中文(包括简体中文繁体中文等)
ApplicationResources_zh_CN.properties //中国中文
ApplicationResources_zh_TW.properties //台湾中文
ApplicationResources_en.properties //英文(包括美国英国等英语国家)
ApplicationResources_en_US.properties //美国英文一般jsp中可以用<bean:message>来输出,在Action中可以用Messages对象获取文本输出。
在struts中使用资源文件的规则是这样的:
首先根据用户浏览器语言来找,我们国内的浏览器中语言一般设置为zh_CN,所以struts会先寻找ApplicationResources_zh_CN.properties这个文件,如果找不到就会去找ApplicationResources_zh.properties这个文件。
如果还是找不到,就会根据应用服务器的语言来找(也就是你运行struts程序的这台机器),如果你的应用就跑在你自己用的这台机器上,应该是简体中文的操作系统吧?那么struts就开始找ApplicationResources_zh_CN.properties,找不到就接着找ApplicationResources_zh.properties。
如果还是找不到,这才使用默认资源文件,也就是ApplicationResources.properties。所以楼主的这个问题,你应该是在你自己的中文操作系统机器上运行struts并用浏览器来访问的吧,而且你可能只有ApplicationResources.properties和ApplicationResources_zh_CN.properties这两个文件,不管你的浏览器语言怎么变,struts找不到你指定的语言,就使用服务器的语言,仍然还是中国中文,所以一直输出ApplicationResources_zh_CN.properties这个文件的内容;当你把它删除,struts也找不到服务器语言对应的文件,只能使用默认的ApplicationResources.properties了。另外说一点,使用jstl标签也可以输出资源文件,记得是<fmt:message>这个标签,它和<bean:message>的功能基本类似,不过寻找资源文件的规则就不同了,先找用户浏览器的语言,找不到就直接使用默认资源文件,而不管服务器的语言。如果在一个应用中即使用<fmt:message>又使用<bean:message>,但找不到浏览器语言时,两种标签就有两种处理模式,也就会发生一楼的同志说的那种情况,即有中文又有英文。所以还是不要混用的好。