zoukankan      html  css  js  c++  java
  • Struts2数据验证与使用Java代码进行数据验证

    Struts2数据验证

    使用Java代码进行数据验证

    重写ActionSupportvalidate()方法

    Action类的中所有请求处理方法都会进行验证!

    Action类的数据属性进行检查,如果发现错误,通过以下方法向Action添加错误信息:

    addActionError(errorMessage) //添加action级别的错误

    addFieldError(fieldName, errorMessage) //添加字段级别的错误

    addActionMessage(message) //添加action消息

    这三个方法实际上是通过ValidationAwareSupport类实现的,ActionSupport实现了ValidationAware接口

    添加错误信息后,在页面上可以使用Struts2标签显示出来:

    <s:actionerror />

    <s:fielderror fieldName="">

    <s:actionmessage />

    验证Action中的请求处理方法

    Action类中添加void validateXXX() 方法即可针对XXX请求处理方法进行验证

    使用XML进行数据验证

    概述

    这种验证的好处是,不需在Action类中写入大量的if/else/addFieldError代码--非侵入式--保证了业务逻辑代码的干净。同时直接提供了国际化支持。

    不但支持xml方式定义规则,还支持使用注解!

    推荐使用xml方式

    验证规则

    验证规则实际上是由xwork提供的,它们定义在struts2-core Jar包中,涉及:

    com.opensymphony.xwork2.validator

    //验证的核心类

    com.opensymphony.xwork2.validator.validators

    //除了验证规则实现类外,还有一个default.xml定义验证规则的名字

    com.opensymphony.xwork2.validator.annotations

    //定义具体的验证注解类

    名称

    参数

    功能

    范围

    required

    不能为null

    field

    requiredstring

    trim=true

    不能为null且不能为empty

    field

    stringlength

    trim=true

    minlength

    maxlength

    限定字符串长度

    field

    short

    int

    long

    min

    max

    限定整数的范围

    field

    double

    minInclusive相当于>=

    maxInclusive相当于<=

    minExclusive相当于>

    maxExclusive相当于<

    限定数字的范围

    field

    date

    min

    max

    限定日期范围

    值为MM/DD/YYYY格式

    email

    限定必须是合法email地址

    url

    限定必须是合法url地址

    creditcard

    验证信用卡号

    fieldexpression

    expression

    使用OGNL表达式进行验证

    field

    expression

    expression

    使用OGNL表达式进行验证

    action

    reges

    expression

    caseSensitive

    trim

    使用正则表达式进行验证

    field

    visitor

    context //验证文件名插值

    appendPrefix

    //错误消息前缀

    Action中的属性是复杂对象,如果希望对这个对象进行特殊验证,则可使用visitor

    field

    注解验证

    每个验证规则都有对象的注解,使用注解也可以开启验证,如:

    @RegexFieldValidator(trim=true)

    自定义验证

    概述

    如果内置的验证规则不能满足需要,可以自己定义验证规则类。大体上包括以下步骤:

    1. 定义一个验证规则类:可以从ValidatorSupport或FieldValidatorSupport继承

    2. 注册验证规则类:在类路径下创建validators.xml,添加<validator>配置节

    3. 使用自定义的验证规则类:<field-validator type=”自定义验证规则类名”>

    定义验证规则类

    package com.zhiyou100.video.validator

    public class IDCardValidator extends FieldValidatorSupport {

    @Override

    public void validate(Object object) throws ValidationException {

    String fieldName = getFieldName();

    Object value = getFieldValue(fieldName, object);

    //如果验证时需要多个属性参与,而可以从object中取到更多的值

    //还可以创建一个otherFieldName属性,让外界把其它属性名传进来

    //验证逻辑

    //addFieldError(fieldName, “错误信息”);

    }

    }

  • 相关阅读:
    nginx安装:linux环境下安装包安装
    Effective C++
    Win32 Msg
    C++ 17
    Win32 Threads
    Exceptional C++
    C++11
    STL 分类
    C++类型转换
    红黑树
  • 原文地址:https://www.cnblogs.com/yangxiansen/p/7860010.html
Copyright © 2011-2022 走看看