簡體   English   中英

Struts2:UTF .properties

[英]Struts2: UTF .properties

有沒有辦法在Struts2中加載UTF-8編碼的.properties文件?

我知道通過實現加載UTF8輸入流但是如何在Struts2中使用它的Control,可以在ResourceBundle中加載UTF-8文件? (我在這里找到了如何在JSF中做到這一點:

http://jdevelopment.nl/internationalization-jsf-utf8-encoded-properties-files/

但無法想象如何在struts2中做到這一點)

PD:我也知道我可以使用native2ascii工具,但它...丑......

編輯:

我已經看到我可以實現TextProviderSupport並將其設置為默認,如此處所示,並覆蓋其所有構造函數,使用UTF8 inputReader設置自定義createrd resourcebundle並放置一些日志。 我保存它並在啟動tomcat時說:

信息:為(com.opensymphony.xwork2.TextProvider)選擇bean(myTextProvider)

在struts.config中使用它:

<bean class="com.utils.i18n.UTF8TextProvider" name="myTextProvider"
     type="com.opensymphony.xwork2.TextProvider" scope="default"/>
     <constant name="struts.xworkTextProvider" value="myTextProvider" />
     <constant name="system" value="myTextProvider" />

所以,它似乎沒問題。 但是我的類從未實例化(我只運行一個實現動作支持的示例動作,並用'getText'和一個帶有<s:text name="">的jsp寫一個文本)

所以問題依舊......

Struts2使用ResourceBundle的概念來加載屬性文件並實現內化(i18n)和本地化(l10n)的目標。

資源包用於保存各種語言的鍵值和值對,例如英語資源包可以具有值,因為英語文本和法國資源包可以具有作為法國文本的值,但鍵是相同的。

資源包可以放在以下位置

  • ActionClass.properties
  • Interface.properties
  • BaseClass.properties
  • ModelDriven的模型
  • Package.properties
  • I18n留言鍵
  • 全球資源屬性

正在按以上順序搜索資源屬性。 首先,它使用動作類name.properties查找資源屬性,如果找不到,則查找interface.properties,直到全局資源屬性為止。

有許多教程詳細解釋了如何在Struts 2中使用資源包。看看以下鏈接:

===============

更新

關於在Struts 2中加載UTF-8編碼的屬性文件,您可以參考http://javatechig.com/java/struts/struts2-localization-example ,看看在將日文文本編碼為UTF-8后如何使用它。 既然,你提到了native2ascii,我假設你知道如何將給定的文本轉換為UTF-8編碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM