码迷,mamicode.com
首页 > 其他好文 > 详细

Struts数据验证---验证嵌套属性

时间:2015-05-13 10:38:35      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

有一类特殊的属性,即这个属性的类型是另外一个JavaBean,如有一个User类,代码如下:

package data;

public class User
{
    private String name;
    private int age;
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public int getAge()
    {
        return age;
    }
    public void setAge(int age)
    {
        this.age = age;
    }
}

NewValidateAction类中加一个user属性,代码如下:

package action;

import com.opensymphony.xwork2.ActionSupport;
import data.User;

public class NewValidateAction extends ActionSupport
{
    private String msg;
    private int age;
    private User user;
    public String getMsg()
    {
        return msg;
    }

    public void setMsg(String msg)
    {
        this.msg = msg;
    }
    public int getAge()
    {
        return age;
    }
    public void setAge(int age)
    {
        this.age = age;
    }
    public User getUser()
    {
        return user;
    }
    
    public void setUser(User user)
    {
        this.user = user;
    }
}

如果要验证NewValidateAction中的user属性,可以使用visitor验证器。操作过程如下:

首先在NewValidateAction-validation.xml中加入一个<field>标签,代码如下:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
>
<validators>
    技术分享 技术分享
    <field name="user">
    <field-validator type="visitor">
            <param name="context">abc</param>
            <param name="appendPrefix">true</param>
            <message>User:</message>
        </field-validator>
    </field>
</validators>

其中context参数将作为验证User类属性的文件名的一部分,如user属性返回一个User对象,那么用于验证User对象属性的文件名为User-abc-validation.xml。这个文件要和User.class文件在同一个目录中。appendPrefix表示是否在字段里加user,如果为trueStruts2就会使用user.nameform提交的数据中查找要验证的数据。这个属性的默认值是true。如果出错,Struts2会将<message>标签中的信息加到User-abc-validation.xml文件中的相应错误信息前面。

User-abc-validation.xml文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
 "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"
>
<validators>
    <field name="name">
        <field-validator type="requiredstring">
            <message>请输入name</message>
        </field-validator>
    </field>
    <field name="age">
        <field-validator type="int">
            <param name="min">5</param>
            <param name="max">20</param>
            <message>
                必须在 5至20之间
            </message>
        </field-validator>
    </field>
</validators>

下面修改validate_form.jsp,代码如下:


<s:form validate="true" action="new_validate" namespace="/test" >
     <s:textfield name="msg" label="姓名"  />
     <s:textfield name="age" label="年龄"/> 
     <s:textfield name="user.name" label="姓名1"  />
     <s:textfield name="user.age" label="年龄1"/> 
    <s:submit/>
</s:form>

Struts数据验证---验证嵌套属性

标签:

原文地址:http://blog.csdn.net/u012230055/article/details/45676037

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!