Struts证验框架实例

Struts验证框架实例!
Validator框架大致有如下几个主要组件:

校验类:
是Validator框架调用的一些Java类,它处理那些基本的通用的校验,包括required、mask(匹配正则表达式)、最小长度、最大长度、范围、日期等。校验类可以根据需要扩展。 配置文件:
主要包括两个配置文件,一个是validator-rules.xml,主要包含一些通用的校验规则,另一个是validation.xml,包含需要校验的一些form及其组件的集合。
FormBean: 必须继承ValidatorForm或者 DynaValiatorForm.
资源绑定:
  缺省使用struts的资源绑定。即校验所用到的一些标签与消息都写在ApplicationResources.properities文件中。

一:配置插件
在struts-config.xml文件中添加一组插件:

<plug-in  className="org.apache.struts.validator.ValidatorPlugIn">
         <set-property  property="pathnames" 
                       value="/WEB-INF/validator-rules.xml,
                              /WEB-INF/validation.xml"/>
     </plug-in>
二:校验定义
<form-validation>
<formset>
<form name="loginForm">
<field property="username" depends="required,maxlength">
<arg0 key="username.error" />
<arg1 name="maxlength" key="${var:maxlength}"
resource="false" />

<var>
<var-name>maxlength</var-name>
<var-value>12</var-value>
</var>
</field>

<field property="password" depends="required,maxlength">
<arg0 key="password.error" />
<arg1 name="maxlength" key="${var:maxlength}"
resource="false" />

<var>
<var-name>maxlength</var-name>
<var-value>12</var-value>
</var>
</field>
</form>
</formset>

</form-validation>

三:资源文件

errors.required={0}\u5fc5\u987b\u586b\u5199.
errors.maxlength={0}\u4e0d\u80fd\u5927\u4e8e{1}\u5b57\u7b26.

username.error=\u7528\u6237\u540d
password.error=\u5bc6\u7801

四:Action 指定校验

<action
      attribute="loginForm"
      input="/Login.jsp"
      name="loginForm"
      path="/login"
      validate="true"
      scope="request"
      type="com.yourcompany.struts.action.LoginAction">
      <forward name="error" path="/Login.jsp" />
      <forward name="success" path="/Success.jsp" />
    </action>
本例对初学者有一定帮助.多个校验文件.
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml,/WEB-INF/validation_one.xml" />
不熟悉的可以仔细看看.包含多种格式验证.
1 楼 lsupper 2008-04-23  
兄弟,我在用这个开始的key="${var:minlength}"时候有次差点被搞死了就是key="${var:min}"我开始没注意就改成了,下面常量如上改了,但是....寒啊!
怎么不能人性点呢?
2 楼 ruderal 2008-04-24  
干嘛不注解在JavaBean里面呢..方便多了...
3 楼 ncfreespy 2008-04-25  
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="loginForm">
<field property="username" depends="required,maxlength">
<arg0 key="username.error" />
<arg1 name="maxlength" key="${var:maxlength}"
resource="false" />

<var>
<var-name>maxlength</var-name>
<var-value>12</var-value>
</var>
</field>

<field property="password" depends="required,maxlength">
<arg0 key="password.error" />
<arg1 name="maxlength" key="${var:maxlength}"
resource="false" />

<var>
<var-name>maxlength</var-name>
<var-value>12</var-value>
</var>
</field>
</form>

<form name="infoForm">
<field property="age" depends="required,intRange">
<arg0 key="age.error" />
<arg1 name="intRange" key="${var:min}" resource="false"/>
<var>
<var-name>min</var-name>
<var-value>16</var-value>
</var>
<arg2 name="intRange" key="${var:max}" resource="false"/>
<var>
<var-name>max</var-name>
<var-value>55</var-value>
</var>
</field>
<field property="email" depends="required,email">
<arg0 key="email.error" />
</field>
<field property="address" depends="required">
<arg0 key="address.error"/>
</field>
</form>
</formset>
</form-validation>
仔细看看吧!
4 楼 iRoger 2008-04-25  
如果我有多个配置文件呢?就是说我每个模块一个配置文件,其次能不能说下服务器短验证和客户端验证的写法