zoukankan      html  css  js  c++  java
  • struts2验证框架

    Struts的验证框架

    一、字段验证器
    1.简单的用户输入验证,在接收数据的Action同一个包下,创建一个***-validation.xml
    文件,然后对验证规则进行配置示例:

    <!DOCTYPE validators PUBLIC
            "-//Apache Struts//XWork Validator 1.0.2//EN"
            "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
    
    <validators>
        <field name="user.account">
        <field-validator type="requiredstring">
            <message>请输入账号</message> <!--返回的错误提示的消息 -->
        </field-validator>
        </field>
    </validators>
    示例讲解:
    <validators>
        <validator type="int">
        <param name="fieldName">user.age</param>
        <param name="min">18</param>
        <message>年龄必须在18岁以上,您输入的是${user.age}</message>
        </validator>
    <validators>

    ①<validators>元素仍然作为整个验证文件的根元素
    ②<validators>的子元素就是字段验证器<validator>元素的type属性就是这个字段验证器
    使用的验证器
    ③<validator>元素作为字段验证器使用时,一定要出现一个name属性为fieldName的<param>
    子元素,用以指明验证哪个字段
    ④<validator>元素的<messahe>子元素用来设置验证错误是返回的信息。在<message>元素中
    写出的文本将直接作为错误信息返回,如果<message>元素存在key属性,它将引用国际化信息

    在返回错误信息的界面使用<s:fielderror/>来输出提示信息

    二、动作验证器

    示例如下:

    <validator type="expression">
      <param name="expression"><![CDATA[user.age >= user.account]]></param>
      <message>年龄必须在${user.account}岁以上,您输入的是${user.age}</message>
      </validator>

    ①<validators>元素仍然作为整个验证文件的根元素
    ②<validators>元素的<validator>子元素就是动作验证器。其中type属性为expression,
    引用了内置的表达式验证器,这个验证器需要一个name属性为expression的<param>子元素为其
    指定表达式
    ③<validator>元素的<messahe>子元素用来设置验证错误是返回的信息。在<message>元素中
    写出的文本将直接作为错误信息返回,如果<message>元素存在key属性,它将引用国际化信息

    在返回错误信息的界面使用<s:actionerror/>来输出提示信息

    三、内建验证器

    ①类型转换错误验证器(conversion)
    conversion验证器用来验证转换类型是否出错,如果一个类型为int的
    参数接收到“19a”这个字串,报错

    ②整数验证器(int)(短整数验证器(short)和长整数验证器(long)用法相似)
    int验证器用来验证一个整数参数是否在指定的范围内。
    int验证器可以有两个参数
    min用来指定可接收范围的最小值
    max用来指定可接收范围的最大值
    ③日期验证器(date)
    date验证器用来验证一个日期型参数是否在指定的范围内。
    date验证器可以有两个参数
    min用来指定可接收范围的最小值
    max用来指定可接收范围的最大值
    ④双精度浮点验证器(double)
    double验证器用来验证一个双精度浮点型参数是否在指定的范围内。
    double验证器可以有4个参数:
    minInclusive用来指定课接收范围的最小值,包含给定值
    masInclusive用来指定课接收范围的最大值,包含给定值
    minExclusive用来指定课接收范围的最小值,不包含给定值
    minExclusive用来指定课接收范围的最大值,不包含给定值
    ⑤邮箱验证器(E-mail)
    e-mail验证器用来验证一个参数是否为邮箱地址
    ⑥URL验证器
    URL验证器用来验证一个参数是否为合法的URL
    ⑦必填验证器(required)
    required验证器用来验证一个参数是否不为null
    ⑧必填字符串验证器(requiredstring)
    requiredstring验证器用来验证一个字符串参数是否为空,且长度大于0
    requiredstring验证器只有一个参数:
    trim:是否去掉字符串两边的空白,默认为true
    ⑨字符串长度验证器(stringlength)
    stringlength验证器有3个参数
    maxLength:字符串长度的最大值
    minLength:字符串长度的最小值
    trim:是否去掉字符串两边的空白,默认为true
    ⑩正则表达式验证器(regex)
    regex验证器用来验证一个字符串是否符合一个正则表达式的要求
    regex验证器有3个参数:
    expression:必填参数,正则表达式。
    caseSensitive:是否检查大小写。
    trim:是否去掉字符串两边的空白,默认为true

  • 相关阅读:
    Vue.Js(html5) + Java实现文件分片上传
    进程、线程基础知识全家桶,30 张图一套带走
    20 张图揭开「内存管理」的迷雾,瞬间豁然开朗
    面试官:换人!他连 TCP 这几个参数都不懂
    TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?
    实战!我用 Wireshark 让你“看得见“ TCP
    IP 基础知识全家桶,45 张图一套带走
    写了Bug,误执行 rm -fr /*,我删删删删库了,要跑路吗?
    你还在为 TCP 重传、滑动窗口、流量控制、拥塞控制发愁吗?看完图解就不愁了
    硬不硬你说了算!35 张图解被问千百遍的 TCP 三次握手和四次挥手面试题
  • 原文地址:https://www.cnblogs.com/qingcong/p/5860602.html
Copyright © 2011-2022 走看看