Struts2 i18n消息

问题描述 投票:2回答:4

我正在使用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文件吗?

java validation properties struts2 internationalization
4个回答
0
投票
只需在ActionClass-validation.xml中使用<message key="key_name"/>

然后您在中定义key_name

global.properties global_vn.properties

确保堆栈中有request_locale

2
投票
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 interceptor设置语言环境,与浏览器设置无关。因此,请确保将其放在堆栈中。


0
投票
使用getText方法从属性文件获取消息。

<message>${getText("enter.password")}</message>

请参阅:http://struts.apache.org/development/2.x/docs/validation.html#Validation-LocalizingandParameterizingMessages

0
投票
是的,您可以从属性文件中获取本地化消息,并且对于任何特定于语言环境的消息,都不需要任何validation.xml。

您需要指定ResourceBundle,它将只不过是扩展名.properties的不同语言环境文件

© www.soinside.com 2019 - 2024. All rights reserved.