struts2之数据验证

来源:互联网 发布:lua 数据解析 编辑:程序博客网 时间:2024/05/31 13:14

struts2有2中进行数据验证的方法

    两种数据验证框架是:

1.    通过重写ActionSupport类中的validate方法进行验证

2.    通过数据验证框架进行验证


通过validate方法进行数据验证

    下面先讲一下进行数据验证的action的执行流程:

        当Client端发送请求给Server端时,首先将请求中的参数转换action中的字段,然后执行action中的validate方法

    当action中的fielderror 或 actionerror为空时,才会执行execute方法,否则不会执行execute方法.

    用validate进行数据验证:

    这种验证方法相对于第二种方法来说比较灵活,通过判断actionerror和fielderror中内容来判断是否验证成功。

    假如fielderror 或者 actionerror有一个不是空的集合,就会跳转到当先action 的 result中 name="input"所对应的页面。

   

    下面通过一个实例来说明

    在validate.jps中有一个form,当提交后会给ValidateAction处理,假如username的长度小于4或者大于6就会将

    错误加入到fielderror中,并且跳转到input对应的页面,否则就会叫转到success对应的页面.

    validate.jsp部分源码

<body>    <center>        <s:fielderror value="username"/><form action="validate" method="get">    username:    <input type="text" name="username">    <br>    <input type="submit" value="validate"></form>    </center></body>

struts.xml中的配置

<action name="validate" class="ValidateAction">    <result name="success">validateresult.jsp</result>    <result name="input">validate.jsp</result></action>

ValidateAction类部分源码

@SuppressWarnings("serial")public class ValidateAction extends ActionSupport{    private String username;    private String password;    private String repassword;    private Date birthday;    private Date graduation;    //setXXX getXXX省略    @Override    public String execute() throws Exception {return "success";    }    @Override    public void validate() {if(username.length() < 4 || username.length() > 6) {      this.addFieldError("username", "the length of username should between 4 and 6");}    }}

通过数据验证框架验证

        这种验证方法是通过一个配置文件自动的进行数据校验,配置文件的命名规则是‘action的名字''-''validation.xml'.

以上面的程序为示例,配置文件的名字为ValidateAction-validation.xml,注意这个配置文件要放在与

要校验的action同一包中,上面程序的配置文件源码如下

<?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="username">    <field-validator type="requiredstring">        <message>username can not be null</message>    </field-validator>    <field-validator type="stringlength">        <param name="minLength">4</param>        <param name="maxLength">6</param>        <message>4 - 6</message>    </field-validator>  </field></validators>
    Struts2提供的数据验证框架有2种不同的类型,一个是field一个是validator,个人觉得用field比较容易理解.