Struts中配置Validator插件

来源:互联网 发布:乐高ev3编程家庭版 编辑:程序博客网 时间:2024/05/22 16:40

转自:http://www.blogjava.net/keweibo/articles/137801.html

-----------------------------------------------------

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
 </plug-in>
required : 强制某个域不能为空,它没有参数。
validwhen : 通过一个域的值来检查另一个域的值。
minlength ; 检查用户输入的数据长度不小于某个指定的值,需要一个最小的长度变量。
                 配置方法如下
                  <field property="username" depends="required,minlength">
                     <arg key="form.username" />
                     <arg position="1" name="minlength" key="${var : minlength}" resource="false" />
                     <var>
                           <var-name>minlength</var-name>
                           <var-value>6</var-value>
                     </var>
                  </field>
maxlength : 检查用户输入的最大长度。具体配置方法参照上面minlength的配置。
mask : 根据正则表达式来检查数据的格式,它需要一个正则表达式掩码变量。从struts1.1开始,正则表达式必须以“^”开始并以“$”结束,其配置如下
            <field property="username" depends="mask">
               <arg key="form.username" />
               <var>
                    <var-name>mask</var-name>
                    <var-value>^[a-zA-Z]*$</var-value>
                </var>
            </field>
data:检查一个域是否可以被转换成Data对象。它使用java.text.SimpleDateFormat来进行分析和检验,它可以使用dataPatten或者dataPattenStrict(这个比较严格,它要求输入的数据长度必须与模式中的指定长度一致)例如:
             <field property="birthday" depends="date">
                <arg key="form.date"/>
                <var>
                    <var-name>dataPattern</var-name>
                    <var-value>yyyy-MM-dd</var-value>
                </var>
             </field>
intRange /  floatRange  /  doubleRange : 检验一个整数 / 浮点数 / 双精度浮点数的值是否在一个指定的范围内,需要最大值和最小值来指定范围。这些检验分别要依赖于 integer  /  float  / double 检验,所以也要要求将它们也指定到depends属性中。它定义的方法如下(这里以intRange为例)
            <field proerty="age" depends="required,integer,intRange">
               <arg position="0" key="form.age" />
               <arg position="1" name="intRange" key="${var : min }" resource="false" />
               <arg position="2" name="intRange" key="${var : max}" resource="false" />
                     <var>
                           <var-name>min</var-name>
                           <var-value>6</var-value>
                     </var>
                     <var>
                           <var-name>max</var-name>
                           <var-value>16</var-value>
                     </var>
creditCard : 检验一个信用卡的格式是否正确,不需要任何参数,它的定义如下。
                  <field property="card" depends="required,creditCard">
                        <arg key="form.card" />  
                   </field>
email : 检验电子邮件地址格式是否正确,不需要任何参数,它的定义如下。
                 <field property="email" depends="required,email">
                      <arg key="form.email"/>
                  </field>
url : 检验URL的格式是否正确。它有四个参数,分别是allowallschemes,allow2slashes,nofragments和schemes 。
   allowallschemes : 用来指明是否允许所有的schemes 。它的值可以为true(允许)/  false(禁止),默认值为false。如果这个值被设置为真,那么将会忽略schemes变量。
   allow2slashes : 用来指明是否允许两个“/”出现。它的值可以为true(允许)/  false(禁止),默认值为false。
   nofragments : 用来说明是否不允许分段。它的值可以为true(不允许)/  false(允许),默认值为false。
   schemes : 指定合法的schemes,多个可以用逗号分隔。如果没有进行指定,那么默认为http , https ,  和 ftp  。
            url检验的方法如下
           <field proper="custUrl" depends="url" >
                <arg key = "form.coutUrl" />
            </field>

         <field proper="custUrl" depends="url" >
                <arg key = "form.coutUrl" />
                  <var>
                     <var-name>nofragments</var-name>
                     <var-value>true</var-value>
                  </var>
                  <var>
                     <var-name>schemes</var-name>
                     <var-value>http,https,telnet,file</var-value>
                  </var>
            </field>
验证两个输入域是否相等
             <field property="password2" depends="required,validwhen">
                <arg position="0" key="form.password2" />
                <arg position="1" key="form.password" />
                <msg name="validwhen" key="error.password.mathch"/>
                <var>
                    <var-name>test</var-name>
                    <var-value>(*this* == password)</var-value>
                </var>
              </field>


初始化配置文件
 validation.xml内容如下
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPEform-validation PUBLIC "-//Apache Software Foundation//DTD CommonsValidator Rules Configuration 1.1.3//EN" "validator_1_1_3.dtd" >
<form-validation>
 <formset>
  <form name="userForm">
      <field proper="" depends="">
            ....................................
      </field>
  </form>
 </formset>
</form-validation>
-------------------------------------------------------------------------------------------------------------------------------
Validator的调用配置
Validator的调用方法要依据所采用的验证方式而定。
   后台服务器端验证
      Action中的Validate属性值设为 true
      还有在页面中通过<html:errors />标记来显示错误信息
   前台Javascrip验证
      Action中的Validate属性值设为 false
     还有在页面用使用<html:javascript />
      <html:form onsubmit="return ValidateXXXForm(this)" >
      </html:form>
      <html:javascript forName="XXXForm" />

原创粉丝点击