天天看点

Struts2——框架校验(基于XML配置方式)

1、定义Action 继承ActionSupport或者实现Validateable接口:

2、配置验证出错转向的页面(配置name为input的result)

3、配置验证的xml文件

ActionClassName-validation.xml(同个包)
其中ActionClassName为 action的简单类名,-validation为固定写法。
           

4、添加验证规则

<validators>: 根元素

<field>:指定action中要校验的属性,name属性指定将被验证表单字段的名字

<field-validator>:指定校验器, type 指定验证规则。

<param>:子元素可向验证程序传递参数

<message>:校验失败后的提示信息,可为message指定key的编码类型(utf-8)
           

5、一些常用的验证属性

  • required: 确保某给定字段值不是空值 null
  • requiredstring: 确保某给定字段的值既不是空值 null, 也不是空白.
    trim (参数): 默认为true, 表示验证该字段值前先剔除前后空格. 
               
  • stringlength: 验证一个非空字段值是否满足长度要求.
    minLength:相关字段的最小长度. 若未给出没有最小长度限制
    
        maxLength:相关字段的最大长度. 若未给出没有最大长度限制
    
        trim: 在验证之前是否去除前后空格
               
  • int: 检查给定字段的值是否可以被转换为一个整数
    min: 相关字段的最小值. 若没给出这个参数, 该字段将没有最小值限制
    
        max: 相关字段的最大值. 若没给出这个参数, 该字段将没有最大值限制
               
  • date: 确保某给定日期值在一个给定范围内
    max:相关字段的最大值. 若没给出该参数, 该字段无最大值限制
    
        min:相关字段的最小值. 若没给出该参数, 该字段无最小值限制
               
//使用SimpleDateForamat类, 改输出日期格式
Date date = new Date();
SimpleDateForamat strdate = new SimpleDateFormat("YYYY-MM-dd");
//使输出的格式为YYYY-MM-dd
System.out.println(strdate.format(date));   
// 输出为你需要的格式 2020-4-14
           
  • email: 检查给定 String 值是否是一个合法的 email
  • url: 检查给定 String 值是否是一个合法的 url
  • regex: 检查某给定字段的值是否与一个给定的正则表达式模式相匹配.
    expression: 用来匹配的正则表达式
    
        caseSensitive: 是否区分字母的大小写. 默认为 true
    
        trim: 是否去除前后空格. 默认为 true
               

6、特别注意配置JSP页面

<%@taglib uri="/struts-tags" prefix="s" %>
//标签引用头文件

<s:fielderror></s:fielderror>
//显示xml配置<message>的信息
           

7、一个小栗子

Loginaction.java

//注意继承ActionSupport
public class Loginaction extends ActionSupport implements ModelDriven{

    User user = new User();

    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }
    @Override
    public Object getModel() {
        // TODO 自动生成的方法存根
        return user;
    }
}
           

struts.xml

<action name="Loginaction" class="com.dao.Loginaction">
        <result>/success.jsp</result>
        <result name="input">/login.jsp</result>
        //input设置验证失败页面
    </action>
           

Loginaction-validation.xml

<?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 name="name">
        <field-validator type="requiredstring">
            <param name="trim">true</param>
            <message>用户名必填</message>
        </field-validator>
    </field>
    <field name="email">
        <field-validator type="email">
            <message>email格式不正确</message>
        </field-validator>
    </field>
</validators>
           

验证失败效果图

Struts2——框架校验(基于XML配置方式)
Struts2——框架校验(基于XML配置方式)

验证成功效果图

Struts2——框架校验(基于XML配置方式)
Struts2——框架校验(基于XML配置方式)

继续阅读