3

我正在同一个操作类(Employee.java)中创建一个具有两种方法(execute、addEmployee)的示例应用程序。我需要验证这两种方法中的一些公共字段,并且我有一些特定于方法的验证。我的 Employee.java 代码是:

public class Employee extends ActionSupport{
   public String execute() 
   {
       return SUCCESS;
   }

   public String addEmployee()
   {
       return SUCCESS;
   }
}

和验证文件:

Employee-validation.xml 代码,用于验证姓名和年龄字段的必需字段验证。

员工执行验证.xml

 <field name="age">
    <field-validator type="int">
    <param name="min">10</param>
    <param name="max">40</param>
    <message>Age must be in between 10 and 40</message>
    </field-validator>
    </field> 

员工添加员工验证.xml

 <field name="gender">
    <field-validator type="int">
    <param name="min">1</param>
    <message>Please select a value</message>
    </field-validator>
    </field>

但是在运行时,只有 Employee-validation.xml 中定义的规则有效。

请帮我解决一下这个。

4

2 回答 2

1

验证可以按动作别名而不是按方法定义。

<actionClass>-<actionAlias>-validation.xml

这里actionAlias指的是配置中的动作名称,而不是动作类中的方法。

于 2013-03-14T09:23:13.273 回答
0

您正在操作级别进行验证,因此将您的 {youractionfile}-validation.xml 放在您的操作类的同一包中。一个 Action 类可以有一个验证。尝试这个!!

员工验证.xml

<validators>
<field name="age">
    <field-validator type="int">
    <param name="min">10</param>
    <param name="max">40</param>
    <message>Age must be in between 10 and 40</message>
    </field-validator>
    </field> 
<field name="gender">
    <field-validator type="int">
    <param name="min">1</param>
    <message>Please select a value</message>
    </field-validator>
    </field>
</validators>
于 2013-03-14T08:28:29.003 回答