`
xrb2008
  • 浏览: 169348 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts中Validator验证框架的使用

阅读更多
费时N天,查了N多资料,终于搞定了.

struts中的validator验证,是实现表单的服务器端验证或者客户端验证的.具体应用:

1.首先搭起struts框架,我是用myeclipse自带的插件生成的.(或者其他方法..)

2.建完之后,如果没有validation.xml和validator-rules.xml这两个文件,请自己加到webinf中.网上去搜一下.

3.在struts-config.xml中加上

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
                   value="/WEB-INF/conf/validator-rules.xml,
                           /WEB-INF/conf/validation.xml"/>

</plug-in>

4.建立jsp页面,from ,和action

要使用Struts的Validator框架进行自动校验的Form Bean不能继承自普通的ActionForm,必须继承自ValidatorForm或者ValidatorActionForm.

ValidatorForm根据struts-config.xml文件中的action的name属性为当前form的调用相应的验证器,因此在validator-rules.xml中的<form-bean>元素的名称属性(name)应该与<action>的name属性值相匹配。

ValidatorActionForm使用struts-config.xml中action的path属性,所以path属性的值相应的应该与validator.xml中的Form的name属性匹配。
Struts-config.xml文件的配置

要使用Validator框架的自动校验机制,还必须在Struts-config.xml文件中作相应的配置.除了前面已经说明了的配置Validator Plugin意外,还需要对需要校验的form的action进行配置.主要有两个地方需要配置,一个是<action>的input属性,一个是<action>的validate属性.input属性必须指定包含校验Form的jsp页面的路径,以便Struts的校验框架校验失败的时候可以重新导向到原来的页面让用户重新输入.validator属性是一个boolean类型的属性,必须设置为true struts才会启动自动校验机制.

5.在struts-config.xml里把自己的ActionForm进行配置

    <form-bean      name="testForm"
        type="org.apache.struts.validator.DynaValidatorForm">
       <form-property name="username" type="java.lang.String"/>
       <form-property name="userpass" type="java.lang.String"/>
           </form-bean>
主要就是表单字段

6.在validator.xml中配置

<formset>

           <form name="loginForm">

            <field

                property="username"

                depends="required">

                    <arg key="login.user"/>
                  
        
            </field>

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

        </form>

  </formset>
这只是针对两个字段,多的话自己手工加上去,相应的 depends="required,maxlength"规则都在validator_rules.xml中.

另外出错信息,你要加到ApplicationResources.properties文件中

6.然后在jsp页面中接到form中抛出的异常

<html>
<head>
  <title>JSP for loginForm form</title>
</head>

<body>
<html:errors/>----显示错误
  <html:form action="/login.do" >
   username : <html:text property="username"/><br/>
   userpass : <html:text property="userpass"/><br/>
   <html:submit/><html:cancel/>
  </html:form>
  </body>
</html>
这样的验证是服务器端验证,想实现javascript验证,即弹出对话框形式

最后加上<html:javascript formName="loginForm" staticJavascript="true"/>

加上: <html:form action="/login.do" onsubmit="return validateLoginForm(this);">

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics