struts 动态验证框架

来源:互联网 发布:python默认编码方式 编辑:程序博客网 时间:2024/06/06 03:10

1.配置:

 

* 加入国际化配置在 struts-config.xml 文件中,如:

 

<message-resources  parameter="MessageResources"  />

 

* 提供国际化资源文件

 

* 引入 validator 插件在 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>

 

*提供 validation.xml (自定义的规则文件)和 validator-rules.xml (struts的规则文件)文件,将此文件拷贝到 WEB-INF 下

 

2.validator服务器端验证

 

*配置 validation.xml 文件

 

3.validator客户端验证( javascript )

 

*配置 validation.xml 文件

 

*在 jsp 页面中包含 <html:javascript>

 

*对需要验证的表单定义 onsubmit 事件,其中事件名称为 validate + ActionForm 的名称,如: validateLoginForm

 

 

sample:

 

资源文件中:

 

prompt.username=用户名称

prompt.password=登陆密码

 

errors.required={0},是必须的

 

 

struts-config.xml 中

 

<form-beans>

     <form-bean  name="loginForm"  type="org.apache.struts.validator.DynaValidatorForm">

          <form-property name="username" type="java.lang.String" />

          <form-property name="password" type="java.lang.String" />

     </form-bean>

</form-beans>

 

 

validation.xml 中

 

<form-validation>

    <formset name="loginForm">                                        //此处的 loginForm 就是 struts-config.xml 中 ActionForm 的名字

          <field property="username" depends="required">     //此处的 username 就是 ActionForm 中的字段名, required 是一个验证规则,即 validator-rules.xml 文件中 <validatro> 标签的 name 值,depends 就是为了引入一个验证规则,<validator>标签中的 msg 属性的值 就是资源文件中的一个 key 的名字,表示验证失败时需要读取的国际化资源文件中的默认消息文本,即 key

                <arg key="prompt.username">         //此处的 prompt.username 表示如果没有输入时,则需要提示的消息,即国际化资源文件中的 key 的名字

                <arg0>      //填充占位符的

          </field>

          <field property="password" depends="required,mask">

                 <arg key="prompt.password" />

                 <var>

                      <var-name>mask</var-name>

                      <var-value>^[0-9 a-z A-Z]*</var-name>

                 </var>

          </field>

    </formset>

</form-validation>