2012-03-07 69 views
0

這是我第一次使用Struts2標籤。我有一個名爲HomeAction的類和兩個資源文件HomeAction_en.propertiesHomeAction_fr.properties。我使用Maven構建,並且資源文件位於src/main/resources下的適當位置;在構建之後,屬性文件最終在HomeAction.class的相同位置。Struts2文本標籤沒有選擇正確的語言屬性文件

我在home.jsp中使用<s:text name="..."/>,但它在錯誤的屬性文件中拾取消息。該操作實現了接口,並且我在調試器中追蹤了該操作以確保它具有正確的語言環境。默認語言環境爲Locale.ENGLISH,但<s:text>返回HomeAction_fr.properties的消息。

我試圖用<s:property value="getText()"/>代替<s:text>。它確實返回來自正確屬性文件的消息,但後來又遇到了另一個問題:屬性文件中的文本被修改,並在瀏覽器中結束錯誤。例如,法國財產文件包含此字符串:Centre moteur &mdash; Requ&#xea;tes de Services。它使用<s:text>正確呈現,但在使用<s:property>時,它在瀏覽器中以Centre moteur &amp;mdash; Requ&amp;#xea;tes de Services結尾,並且它不能正確呈現。

我一直在嘗試幾個小時來解決這個問題,但沒有成功。任何幫助將不勝感激。

+0

由於您的名字是D. Laroche,您來自蒙特利爾,是否有可能從您的瀏覽器中檢索語言環境信息?如果不能確定用戶的語言環境,則應用「默認」,但我猜你的瀏覽器或機器本身具有「fr_ca」作爲語言環境。 – 2012-03-07 03:21:17

+0

我的理解是,如果動作實現'LocaleProvider'接口(它定義方法'getLocale()'),那應該覆蓋瀏覽器設置。無論如何,我只是在配置了英語作爲首選語言的瀏覽器中嘗試過,而且我仍然看到法語版本。謝謝你的評論。 – 2012-03-07 07:15:54

回答

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

Define Struts locale - struts.locale=en_US 
struts.i18n.encoding=UTF-8 
相關問題