validator name="required"  
                          requiredstring"
                          int"
                         "long"
                         "short"
                          double"
                         "date"
                        "expression"
                        "fieldexpression"
                         "email"
                          "url"
                         "visitor"
                         "conversion"
                      stringlength"
                      "regex"
                     conditionalvisitor"
这些name的值都分别是验证什么的?我就知道required是验证是否为空的,其他的谁知道说下,最好再有实例说明就更好了

解决方案 »

  1.   

    1,required 必填校验器,要求字段必须有值
    2,requiredstring 必填字符串校验器,要求必须有值且长度大于0,即不能是空字符串。默认会去掉字符串前后空格
    3,int 整数校验器,可以配置整数在指定的范围内
    4,double 双精度校验器,可以配置双精度数在指定的范围内
    5,date 日期校验器,可以配置日期在指定的范围内
    6,expression 表达式校验器,它是一个非字段校验器,当参数expression计算的值为true时,校验通过,否则返回提示。
    7,fieldexpression 字段表达式校验器,当参数expression计算的值为true时,校验通过,否则返回提示。它和6一样多用于在用户的两次输入中间进行判断,如下例:
    <!-- 要校验的属性为rpass -->
        <field name="rpass">
        <!-- 使用fieldexpression校验器 -->
            <field-validator type="fieldexpression">
            <param name="expression"><![CDATA[(rpass == password)]]></param>
                <message>两次密码不相同!</message>
            </field-validator>
        </field>
    7,email 邮件地址校验器,要求被检查的字段如果非空,则必须是合法的邮件地址。
    8,url 网址校验器,要求被检查的字段如果非空,则必须是合法的URL地址。7和8都是基于正则表达式来计算的,可能会随着技术的进步而不同,用户可以自己扩展。
    9,visitor Visitor校验器,用于检测Action里的复合属性。例如:RegistAction中包含了一个User属性,那么要校验User里的属性就要使 用Visitor校验器,RegistAction-validation.xml文件中的配置如下:
    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
    "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
    <validators>
    <!-- 指定校验user属性 -->
    <field name="user">
       <!-- 使用visitor校验器 -->
       <field-validator type="visitor">
        <!-- 指定校验规则文件的context -->
        <param name="context">userContext</param>
        <!-- 指定校验失败后的提示信息是否添加下面的前缀 -->
        <param name="appendPrefix">true</param>
        <!-- 指定校验失败的提示信息的前缀 -->
        <message>用户的:</message>
       </field-validator>
    </field>
    </validators>
    还要另外再为User属性配置单独的校验文件,默认的文件名应为User-validation.xml,因为刚在在RegistAction- validation.xml文件中指定了visitor的context属性为userContext,因此校验文件名应为:User- userContext-validation.xml,该文件同一般的校验文件一样,代码如下:
    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE validators PUBLIC 
       "-//OpenSymphony Group//XWork Validator 1.0//EN" 
       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
      
    <validators>
    <field name="name">
       <field-validator type="requiredstring">
        <param name="trim">true</param>
        <message>必须输入名字</message>
       </field-validator>
       <field-validator type="regex">
        <param name="expression"><![CDATA[(\w{4,25})]]></param>
        <message>您输入的用户名只能是字母和数组,且长度必须在4到25之间</message>
       </field-validator>
    </field>
    <field name="pass">
       <field-validator type="requiredstring">
        <param name="trim">true</param>
        <message>必须输入密码</message>
       </field-validator>
       <field-validator type="regex">
        <param name="expression"><![CDATA[(\w{4,25})]]></param>
        <message>您输入的密码只能是字母和数组,且长度必须在4到25之间</message>
       </field-validator>
    </field>
    <field name="age">
       <field-validator type="int">
        <param name="min">1</param>
        <param name="max">150</param>
        <message>年纪必须在1到150之间</message>
       </field-validator>
        </field>
    <field name="birth">
       <field-validator type="date">
        <param name="min">1900-01-01</param>
        <param name="max">2050-02-21</param>
        <message>年纪必须在${min}到${max}之间</message>
       </field-validator>
    </field>
    </validators>
    当然这时候的JSP页面中也与之前的不一样,它要把页面属性直接赋值给Action中的User中的属性,这在之前的几课中已经有过说明,页面代码如下:
    <%@ page language="java" contentType="text/html; charset=GBK"%>
    <%@taglib prefix="s" uri="/struts-tags"%>
    <html>
    <head>
    <title>请输入您的注册信息</title>
    </head><body>
    <H1>请输入您的注册信息</H1>
    <s:fielderror/>
    <FORM METHOD="POST" ACTION="regist.action">
    用户名:<INPUT TYPE="text" NAME="user.name"><br>
    密&nbsp;&nbsp;码:<INPUT TYPE="text" NAME="user.pass"><br>
    年&nbsp;&nbsp;龄:<INPUT TYPE="text" NAME="user.age"><br>
    生&nbsp;&nbsp;日:<INPUT TYPE="text" NAME="user.birth"><p>
    <INPUT TYPE="submit" value="注册">
    </FORM>
    </body>
    </html>
    10,conversion 转换校验器,它检查被校验字段在类型转换过程中是否出现错误。例子如下:
    <field name="age">
       <field-validator type="int">
        <param name="min">1</param>
        <param name="max">150</param>
        <message>年纪必须在1到150之间</message>
       </field-validator>
       <field-validator type="conversion">
        <!-- 指定类型转换失败后,返回输入页面依然保留原来的错误输入 -->
        <param name="repopulateField">true</param>
        <!-- 转换失败后的提示信息 -->
        <message>你的年龄必须是一个整数</message>
       </field-validator>
        </field>
    11,stringlength 字符串长度校验器,它要求被校验的字段长度必须在指定的范围内,否则校验失败。例:
    <field name="pass">
       <field-validator type="stringlength">
        <param name="minLength">4</param>
        <param name="maxLength">10</param>
        <message>长度必须在4-10之间</message>
       </field-validator>
    </field>
    12,regex 正则表达式校验器,它检查被校验的字段是否匹配指定的正则表达式,例:
    <field name="pass">
       <field-validator type="regex">
       <param name="expression"><![CDATA[(\w{4,25})]]></param>
        <message>您输入的密码只能是字母和数组,且长度必须在4到25之间</message>
       </field-validator>
    </field>