struts的表单数据验证方式

2019-03-11  本文已影响0人  不想当菜鸟了

1. 服务端Action验证:

/**

* struts自带表单字段的验证

* 第一种:重写validate方法,这个Action必须实现ActionSupport,如果数据不对,可以往FieldError添加字段错误信息

* 注意:表单一定要用struts的标签

*          addFieldError里的key,是表单的name值

*          validate对于Action来说是全局的,也就是说action的所有方法都会生效

*          在不需要验证的action方法上,可以声明一个注解@SkipValidation,忽略校验

* 第二种:写一个方法,格式:validate+方法名(第一个字母大写)

*                只针对方法有效,是一个局部的方法校验

* @return

*/

public void validate(){

    //判断用户名是否为null

    if(StringUtils.isEmpty(user.getUsername())){

        addFieldError("username","用户名不能为空");

    }

    if(StringUtils.isEmpty(user.getPassword())){

        addFieldError("password","密码不能为空");

    }

}

2. xml声明式验证

全局声明方式:

在action包中声明UserAction-validation.xml文件

这种方式配置是全局配置,所有action的方法都会拦截验证

如果其它方法不想验证,可配置@SkipValidation注解

dtd约束可以在xwork-core的jar包中找

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE validators PUBLIC

        "-//Apache Struts//XWork Validator 1.0.3//EN"

        "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

<validators>

    <!--第一种校验字段的方式:field-->

    <field name="username">

        <field-validator type="requiredstring">

            <param name="fieldName">username</param>

            <message>用户名不能为空-xml</message>

        </field-validator>

    </field>

<!--第二种校验字段方式:field-->

<validator type="requiredstring">

    <param name="fieldName">password</param>

    <message>密码不能为空-xml</message>

</validator>

</validators>

3. 局部声明方式

在action包中声明UserAction-register-validation.xml文件

声明方式【Action类名-方法名-validation.xml

xml内容与上面的一样

上一篇下一篇

猜你喜欢

热点阅读