论坛首页 Java企业应用论坛

Struts1的国际化在开发环境好用,生产环境不好用

浏览 2352 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-12-14  


最近遇到了下面的问题:
利用Struts1开发的程序,在开发环境中国际化是好用的,可以根据浏览器设置的第一语言进行显示。
而在生产环境中却不好用,
资源文件有两个分别是无后缀的(内容为英文),和日文的。
当浏览器设置的第一语言是英文或英文、日文以外时,显示的都是日文的内容。

Struts版本:1.1
ApplicationServer:WebSphere

请教各位,有人遇到过类似的现象吗?或者可能的原因是什么?
谢谢。
   发表时间:2012-12-15  
Struts1的国际化没用过,不过,这个框架已经存世多年,按理说不可能国际化方面不应该如此。
0 请登录后投票
   发表时间:2012-12-17  
你调用的getMessage()吧,有可能是你的开发环境和生产环境的语系不一样造成的。
0 请登录后投票
   发表时间:2012-12-17  
这个不应该吧,正常应该优先利用浏览器设置的第一语言吧。


duwenchao1986 写道
你调用的getMessage()吧,有可能是你的开发环境和生产环境的语系不一样造成的。

0 请登录后投票
   发表时间:2012-12-18  
如果你在调用getMessage()时,设置了Locale,会优先取session里的值,然后才是request(也就是游览器设置的)的值。
如果没有设置Locale,就服务器默认的Locale了。
你确认调用的是getMessage()出的错吧?
我觉得如果用<html:message>标签,应该不会出这种问题。
0 请登录后投票
   发表时间:2012-12-18  
你是说<bean:message>吧?现在用的就是<bean:message key="XXXXXX"/>的方式取国际化的message。

最终调用的是PropertyMessageResources类中的getMessage(Locale locale, String key)方法。
locale是优先从session中取,没有的话再从request中取。

因为是生产环境无法debug,不过感觉问题应该是在getMessage()。

感谢回复。


duwenchao1986 写道
如果你在调用getMessage()时,设置了Locale,会优先取session里的值,然后才是request(也就是游览器设置的)的值。
如果没有设置Locale,就服务器默认的Locale了。
你确认调用的是getMessage()出的错吧?
我觉得如果用<html:message>标签,应该不会出这种问题。

0 请登录后投票
   发表时间:2012-12-18  
嗯。是<bean:message>,写错了。
我感觉你的java代码里应该是有调用getMessage(),你最好查下代码吧。
如果是在页面用标签的话,不太可能出现你说的这种情况。

jerrygaochina 写道
你是说<bean:message>吧?现在用的就是<bean:message key="XXXXXX"/>的方式取国际化的message。

最终调用的是PropertyMessageResources类中的getMessage(Locale locale, String key)方法。
locale是优先从session中取,没有的话再从request中取。

因为是生产环境无法debug,不过感觉问题应该是在getMessage()。

感谢回复。


duwenchao1986 写道
如果你在调用getMessage()时,设置了Locale,会优先取session里的值,然后才是request(也就是游览器设置的)的值。
如果没有设置Locale,就服务器默认的Locale了。
你确认调用的是getMessage()出的错吧?
我觉得如果用<html:message>标签,应该不会出这种问题。


0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics