这是我第一次使用Struts2标签。我有一个名为HomeAction
的课程和两个资源文件HomeAction_en.properties
和HomeAction_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 — Requêtes de Services
。它使用<s:text>
正确呈现,但在使用Centre moteur &mdash; Requ&#xea;tes de Services
时,它在浏览器中最终为<s:property>
,并且无法正确呈现。
我已经尝试了几个小时来解决这个问题而没有成功。任何帮助将不胜感激。
答案 0 :(得分:0)
<%@page contentType="text/html; charset=UTF-8" %>
Define Struts locale - struts.locale=en_US
struts.i18n.encoding=UTF-8