zoukankan      html  css  js  c++  java
  • struts2表单验证-原理加基本用法

    struts2的表单验证有两种方式[两种方式都是同一个数据验证拦截器(validate)在作用]:
    1.手工验证:自己手动写一个validate()方法,实现数据验证。
    前提:此action继承ActionSupport或者实现Validateable, ValidationAware接口
    该方法中,写数据检查代码,如果有错误就把错误信息添加到值栈中。当值栈中的错误信息不为空,struts2会自动返回一个input的结果
    validate()对Action里的全部方法做数据校验
    如果只想对Action里的某xxx方法做数据校验 ,写一个validateXxx()方法
    jsp页面配合<s:Filederror/>和<s:actionerror/>(表达式验证时用此显示)

    2.使用xml配置文件,实现表单验证
    数据验证拦截器,当存在验证规则的xml文件时,自动读取里面的验证规则,来对字段进行验证,如果验证不通过则返回input跟类型转换过程一致。
    前提:要对某个action进行数据验证,那么xml文件名一定是action名-validation.xml,并且和action同一目录。
    注意:使用表达式验证,产生的错误,属于actionerror 使用<s:actionerror/>输出此类型的错误消息。

    常用的使用xml配置文件,实现表单验证
    <validators>
    <!-- 字段的验证规则 -->

    <!-- 年龄字段的校验规则 -->
    <field name="user.age">
    <field-validator type="int">
    <param name="min">20</param>
    <param name="max">30</param>
    <message>年龄必须在${min} 到 ${max} 之间</message>
    </field-validator>
    </field>

    <!-- 用户名不能为空 , 长度校验 -->
    <field name="user.username">
    <field-validator type="requiredstring">
    <param name="trim">true</param>
    <message>用户名不能为空</message>
    </field-validator>

    <field-validator type="stringlength">
    <param name="minLength">6</param>
    <param name="maxLength">12</param>
    <param name="trim">true</param>
    <message>用户名必须在6-12位之间</message>
    </field-validator>

    </field>

    <!-- 电子邮件验证 -->
    <field name="user.email">
    <field-validator type="email">
    <message>电子邮件必须符合邮件规则</message>
    </field-validator>
    </field>

    <!-- 密码长度校验 -->
    <field name="user.password">
    <field-validator type="requiredstring">
    <param name="trim">true</param>
    <message>密码不能为空</message>
    </field-validator>
    <field-validator type="stringlength">
    <param name="minLength">6</param>
    <param name="maxLength">12</param>
    <param name="trim">true</param>
    <message>密码长度必须在6-12位之间</message>
    </field-validator>
    </field>

    <!-- 使用正则,身份证验证 -->
    <field name="user.idCard">
    <field-validator type="regex">
    <param name="regex"><![CDATA[^[1-9]d{5}[1-9]d{3}((0d)|(1[0-2]))(([0|1|2]d)|3[0-1])d{4}$]]></param>
    <message>身份证必须符合规则</message>
    </field-validator>
    </field>


    <!-- 使用表达式校验,来验证密码和确认密码一致 -->
    <validator type="expression">
    <param name="expression"><![CDATA[user.password==password2]]></param>
    <message>密码和确认密码必须相同</message>
    </validator>
    </validators>

  • 相关阅读:
    http uri唯一标识
    http协议
    python模块 sys
    file 文件的操作
    库的介绍及使用
    python os模块
    python的序列化与反序列化
    python 字典的定义以及方法
    python字符串的常用方法
    在Windows下使用adb logcat grep
  • 原文地址:https://www.cnblogs.com/zDr-zHy/p/4882727.html
Copyright © 2011-2022 走看看