分享

Struts中validate框架非完整笔记

 openwudi 2010-12-06

这里只是简单的说明一下struts的 validate框架的使用,并没有提到更多的东西,比如validate框架生成的javascript验证,对资源文件的配置和引用,还有对日期格式 的验证。此文章仅作为简要笔记,关于大多数的代码最好是参考maireader范例。

EMAIL:i#openwudi.com

一、在对应的Form Baens中重载validate方法
在struts-config.xml文件中,action节点下有“validate”这样一个属性。在struts框架中,默认属性是 validate=”true”。所以如果想通过Form Baens的重载validate方法来验证数据的话,可以不用理会这一点。题外话:如果你在struts-config.xml文件中,设置 validate="false"的话,validate方法将不起作用。这一点同样对Validate框架来验证数据起作用。

二、通过Validate框架来验证数据
1、首先在struts-config.xml文件中,追加如下代码:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validations.xml"/>
<set-property property="stopOnFirstError" value="false"/>
</plug-in>

2、然后编写自己的Form Beans,有两种方式可供选择:

① 写的formBean需要继承ValidatorForm,而不是第一种方法中的ActionForm
public class UserForm extends ValidatorForm {
                    private String userId = "";
                    private String password = "";
                    public void setUserId(String userId) {
                         this.userId = userId;
                    }
                    public String getUserId() {
                          return userId;
                    }
}
然后配置struts-config文件
<form-bean name="userForm" type="cn.iego.wudi.beans.UserForm"/>

② 使用动态的ActionForm。直接配置struts-config文件即可
<form-beans>
        <form-bean name=" userForm" type="org.apache.struts.validator.DynaValidatorForm">
                <form-property name=" userId" type="java.lang.String"/>
                <form-property name="password" type="java.lang.String"/>
         </form-bean>
</form-beans>

3、配置validation.xml文件
<formset>
      <form name="userForm"> ----这里的userForm是Form Beans的名字
       <field property="userId" depends="required">
         <arg key="userForm.userId"/>
       </field>

       <field property="password" depends="required,mask">
         <arg key="userForm.password"/>
        <var>
         <var-name>mask</var-name>
         <var-value>^[0-9a-zA-Z]*$</var-value>
        </var>

       </field>
   </form>
</formset>
        其中key="userForm.userId"和key="userForm.password"需要在资源文件中配置 。 这里需要说明一点,例如:<arg key="userForm.password" resource="false"/>
如果多了resource="false"这句话,那么它不会再从资源文件中去取,而是直接用key值来表示。以上是通过validatorForm- or DynaValidatorForm来实现Validate验证的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多