簡體   English   中英

Struts2 i18n 消息

[英]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.

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