Struts2文本标记未选择正确的语言属性文件

时间:2012-03-07 01:11:50

标签: java struts2

这是我第一次使用Struts2标签。我有一个名为HomeAction的课程和两个资源文件HomeAction_en.propertiesHomeAction_fr.properties。我正在使用Maven构建,资源文件位于src/main/resources下的适当位置;在构建之后,属性文件最终与HomeAction.class处于同一位置。

我在<s:text name="..."/>中使用home.jsp,但它会在错误的属性文件中获取消息。该操作实现了LocaleProvider接口,我在调试器中跟踪了该操作,以确保它具有正确的语言环境。默认语言区域为Locale.ENGLISH,但<s:text>会返回HomeAction_fr.properties的邮件。

我尝试将<s:text>替换为<s:property value="getText()"/>。它确实从正确的属性文件返回消息,但后来我遇到了另一个问题:属性文件中的文本被修改并在浏览器中结束错误。例如,french属性文件包含以下字符串:Centre moteur &mdash; Requ&#xea;tes de Services。它使用<s:text>正确呈现,但在使用Centre moteur &amp;mdash; Requ&amp;#xea;tes de Services时,它在浏览器中最终为<s:property>,并且无法正确呈现。

我已经尝试了几个小时来解决这个问题而没有成功。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

<%@page contentType="text/html; charset=UTF-8" %>

Define Struts locale - struts.locale=en_US 
struts.i18n.encoding=UTF-8