2

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

4

4 回答 4

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

那是本地化的。

根据用户浏览器的区域设置或通过独立于浏览器设置的I18N 拦截request_locale器设置区域设置的参数自动检索消息。所以,确保你有它在堆栈上。

于 2013-03-19T09:58:10.490 回答
0

使用getText方法从属性文件中获取消息。

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

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

于 2013-03-19T09:18:56.287 回答
0

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

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

于 2013-03-21T13:21:29.157 回答
0

只需<message key="key_name"/>在您的内部使用ActionClass-validation.xml

key_name然后你定义

global.properties
global_vn.properties

确保你request_locale的堆栈中有。

于 2014-06-21T07:04:16.727 回答