`
neil-jh
  • 浏览: 145824 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

struts2 验证

阅读更多
package com.derby.dms.neil;

import com.opensymphony.xwork2.ActionSupport;

import java.util.regex.Pattern;

/*
struts2 的 ActionSupport类提供了validate方法,此方法可以对使用的Action进行校检。例如:



public class RegistAction extends ActionSupport {

    private String name;

    //重写ActionSupport的此方法进行校检
    @Override
    public void validate(){

        if(name != null && Pattern.matches("\\w{4,25}",name.trim())){
            addFieldError("user","您输入用户名必须是字母和数字,且长度必须是4到25之间");
        }
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}


在上面的validate 方法中,一旦校检失败,就会把失败的提示信息通过addfieldError方法添加到系统的fieldError中。
为了在input视图对应的JSP页面输出错误提示,应该在该页面中添加如下代码:
输出失败提示和校检失败提示  <s:filederror/>


validate方法会处理你Action中的所有逻辑方法,如果我只需要对单个逻辑方法进行验证,那么就需要重写validateXxx()
方法。例如下面我有一个处理逻辑方法Regist()方法,我只需要对这个方法进行校检。如下
*/

public class RegistAction extends ActionSupport {
    public String name;

    public void validateRegist() {
        //验证内容
    }

    public String regist() {
        return SUCCESS;
    }

    public void setName(String name) {
        this.name = name;
    }
}

/*
上面是手动验证方法,struts2还提供一种配置文件的验证方法,些配置文件例如下面
<!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>姓名必须输入.</message>
        </field-validator>
    </field>
    </validators>

    此配置文件必须遵循如下规则:<Action 名字>-validation.xml

    签名的Action名字就是你的Aaction名字可以更改,后面-validation.xml是固定不变不能更改的。
    并且该文件必须和Action保存在相同的路径下。

    在JSP页面中要指定 validate="true"
    <s:form action="" validate="true">

*/
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics