[英]Struts2 i18n messages
我正在使用 Struts 2,並按照我找到的教程創建了一個簡單的應用程序。
我創建了一個<MyActionClass>-validation.xml
文件,我想知道如何顯示基於多種語言的驗證消息?
<field name="password">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>You have to enter a password.</message>
</field-validator>
</field>
我可以從本地化的.properties
文件中獲取消息還是必須使用其他類型的驗證?
每個語言環境都應該有驗證 XML 文件嗎?
這些消息是通過key
從您的本地化屬性中檢索的。 您不必編寫重復的代碼進行驗證。 例如
<validators>
<validator type="requiredstring">
<param name="fieldname">field.name</param>
<message key="field.key"/>
</validator>
</validators>
或使用注釋
private String name;
@RequiredStringValidator(key = "field.key")
public void setName(String name) {
this.name = name;
}
field.name
是字段標簽的資源鍵,而field.key
是錯誤消息的鍵。
在你寫的屬性中
field.name=MyName
field.key=MyName required
那是本地化的。
根據用戶瀏覽器的區域設置或通過request_locale
參數自動檢索消息,該參數由I18N 攔截器獨立於瀏覽器設置設置區域設置。 所以,確保你把它放在堆棧上。
使用getText
方法從屬性文件中獲取消息。
<message>${getText("enter.password")}</message>
請參閱: http : //struts.apache.org/development/2.x/docs/validation.html#Validation-LocalizingandParameterizingMessages 。
是的,您可以從屬性文件中獲取本地化消息,並且對於任何特定於語言環境的消息,不需要任何validation.xml。
您需要指定 ResourceBundle,它只是擴展名為 .properties 的不同語言環境文件
只需在ActionClass-validation.xml
使用<message key="key_name"/>
然后你定義key_name
global.properties
global_vn.properties
確保您的堆棧中有request_locale
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.