现在的位置: 首页 > 综合 > 正文

struts 使用validate

2013年09月09日 ⁄ 综合 ⁄ 共 2981字 ⁄ 字号 评论关闭

 

validate使用了2个配置文件,一个是validation.xml,一个是validator-rules.xml.分别就2者的用途作一
描述:
1) validator-rules.xml:
 定义一些通用的javascript校验规则.注意--如果<validator>标签含有一个名为:
msg属性,则表示这个属性的值在资源文件中被定义.例如:
    <validator name="requiredif"
                 classname="org.apache.struts.validator.FieldChecks"
                 method="validateRequiredIf"
                 methodParams="java.lang.Object,
                               org.apache.commons.validator.ValidatorAction,
                               org.apache.commons.validator.Field,
                               org.apache.struts.action.ActionErrors,
                               org.apache.commons.validator.Validator,
                               javax.servlet.http.HttpServletRequest"
                 msg="errors.required">
      </validator>
其中msg=errors.required,在属性文件中找到:
errors.required={0} is required.
这样就实现了通用校验规则的动态信息提示

我们也可以自己扩展这个文件,定义我们需要的校验规则,只要参照里面的格式就行.

 

2)  validation.xml:

 针对页面form表单项指定校验规则.如
  <form    name="registrationForm">
         <field    property="firstName"
             depends="required,mask,minlength">
               <arg0 key="registrationForm.firstname.displayname"/>
               <arg1 name="minlength" key="${var:minlength}" resource="false"/>
                     <var>
                       <var-name>mask</var-name>
                       <var-value>^/w+$</var-value>
                     </var>
                     <var>
                       <var-name>minlength</var-name>
                       <var-value>5</var-value>
                     </var>
         </field>
         ...
        
    其中form 属性中的name值要和struts-config.xml中的formbean的属性值一样.
    field属性表示表单项.  
    depends表示该表单项需要进行的校验判断.
    <arg0 key=...>表示校验firstName属性时第一种可能显示的错误信息.
    <arg1 name="minlength" key="${var:minlength}" resource="false"/>中key的表示在validator-rules.xml
    中定义了名为minlength的校验规则. name="minlength"中的minlength变量名在下面使用:
                     <var>
                       <var-name>minlength</var-name>
                       <var-value>5</var-value>
                     </var>   

   表示传入的值为5.

3)启用检验规则:在struts-config.xml中加入下面2段定义.(注意:在<action-mappings> 定义结束后添加,
                                                      不同版本,参照不同的tld定义)
  
  <!-- ========== Message Resources Definitions =========================== -->

  <message-resources
    parameter="org.apache.struts.webapp.validator.ApplicationResources"/>

  <!-- ========== Plug Ins Configuration ================================== -->
 
  <!--
     Add multiple validator resource files by setting the pathnames property
     with a comma delimitted list of resource files to load.
  -->
  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                                              /WEB-INF/validation.xml"/>
  </plug-in>  
 
  这样校验规则即告生效.
 
4)在jsp显示错误信息:

 在jsp页面加上:
 <logic:messagesPresent>
    <ul>
    <html:messages id="error">
       <li><bean:write name="error"/></li>
    </html:messages>
    </ul><hr>
 </logic:messagesPresent>

5)对应的form应该继承ValidatorForm类
 public final class RegistrationForm extends ValidatorForm implements Serializable
 {
  ...
 }

抱歉!评论已关闭.