浏览 2352 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-12-14
最近遇到了下面的问题: 利用Struts1开发的程序,在开发环境中国际化是好用的,可以根据浏览器设置的第一语言进行显示。 而在生产环境中却不好用, 资源文件有两个分别是无后缀的(内容为英文),和日文的。 当浏览器设置的第一语言是英文或英文、日文以外时,显示的都是日文的内容。 Struts版本:1.1 ApplicationServer:WebSphere 请教各位,有人遇到过类似的现象吗?或者可能的原因是什么? 谢谢。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-12-15
Struts1的国际化没用过,不过,这个框架已经存世多年,按理说不可能国际化方面不应该如此。
|
|
返回顶楼 | |
发表时间:2012-12-17
你调用的getMessage()吧,有可能是你的开发环境和生产环境的语系不一样造成的。
|
|
返回顶楼 | |
发表时间:2012-12-17
这个不应该吧,正常应该优先利用浏览器设置的第一语言吧。
duwenchao1986 写道 你调用的getMessage()吧,有可能是你的开发环境和生产环境的语系不一样造成的。
|
|
返回顶楼 | |
发表时间:2012-12-18
如果你在调用getMessage()时,设置了Locale,会优先取session里的值,然后才是request(也就是游览器设置的)的值。
如果没有设置Locale,就服务器默认的Locale了。 你确认调用的是getMessage()出的错吧? 我觉得如果用<html:message>标签,应该不会出这种问题。 |
|
返回顶楼 | |
发表时间: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>标签,应该不会出这种问题。 |
|
返回顶楼 | |
发表时间: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>标签,应该不会出这种问题。 |
|
返回顶楼 | |