本人用struts的validator进行页面注册、登录、修改密码等的验证。
我在struts-config.xml里写到:
<action
      attribute="userForm"
      input="/jsp/errors.jsp"
      name="userForm"
      parameter="status"
      path="/jsp/user"
      scope="request"
      type="org.lxh.myzngt.struts.action.UserAction">
      <forward name="registersuccess" path="/jsp/index.jsp"></forward>
      <forward name="registerfailure" path="/jsp/register.jsp"></forward>
      <forward name="loginsuccess"
path="/jsp/index.jsp">
</forward>
<forward name="loginfailure" path="/jsp/login.jsp"></forward>
<forward name="exists" path="/jsp/updatepwd.jsp"></forward>


<forward name="notexists" path="/jsp/forgetpwd.jsp"></forward>
<forward name="updatepwddo" path="/jsp/updatepwd_do.jsp"></forward>
<forward name="userinfo" path="/jsp/user/userinfo.jsp"></forward>
<forward name="updateuser_do" path="/jsp/modify.jsp"></forward>
      </action>
然后在validation.xml里写到:
<form name="userForm">
            <field property="userid" depends="required,mask,maxlength,minlength">
                            <msg name="required" key="user.userid.null"/>
             <msg name="mask" key="user.userid.mask"/>
             <msg name="minlength" key="user.userid.minlength"/>
             <msg name="maxlength" key="user.userid.maxlength"/>
             <arg name="minlength" key="${var:minlength}" position="0" resource="false"/>
                    <arg name="maxlength" key="${var:maxlength}" position="1" resource="false"/> 
                    <var>
                    <var-name>mask</var-name>
                    <var-value>^[a-zA-Z0-9]*$</var-value>
                    </var>  
                    <var>
                    <var-name>minlength</var-name>
                    <var-value>5</var-value>
                    </var>   
                    <var>
                    <var-name>maxlength</var-name>
                    <var-value>15</var-value>
                    </var> 
                           </field>
             <field property="pwd" depends="required,mask,maxlength,minlength">
             <msg name="required" key="user.userpwd.null"/>
             <msg name="mask" key="user.pwd.mask"/>
             <msg name="minlength" key="user.pwd.minlength"/>
             <msg name="maxlength" key="user.pwd.maxlength"/>
             <arg name="minlength" key="${var:minlength}" position="0" resource="false"/>
                    <arg name="maxlength" key="${var:maxlength}" position="1" resource="false"/> 
                    <var>
                    <var-name>mask</var-name>
                    <var-value>^[a-zA-Z0-9]*$</var-value>
                    </var>  
                    <var>
                    <var-name>minlength</var-name>
                    <var-value>5</var-value>
                    </var>   
                    <var>
                    <var-name>maxlength</var-name>
                    <var-value>15</var-value>
                    </var> 
             </field>
             <field property="confirmpwd" depends="validwhen">
             <msg name="validwhen" key="user.confirmpwd.error"/>
             <var>
                <var-name>test</var-name>
                <var-value>(pwd==*this*)</var-value>
                </var>
             </field>
             <field property="email" depends="required,email">
             <msg name="required" key="user.email.null"/>
             <msg name="email" key="user.email.email"/>
             </field>
             <field property="checkcode" depends="required">
             <msg name="required" key="checkcode.null"/>
             </field>
              <field property="userqes" depends="required,minlength">
              <msg name="required" key="user.userqes.null"/>
              <msg name="minlength" key="user.userqes.minlength"/>
                                  <var>
                    <var-name>minlength</var-name>
                    <var-value>2</var-value>
                    </var> 
             </field>
              <field property="userans" depends="required,minlength">
              <msg name="required" key="user.userans.null"/>
              <msg name="minlength" key="user.userans.minlength"/>
                                  <var>
                    <var-name>minlength</var-name>
                    <var-value>2</var-value>
                    </var> 
             </field>
         </form>发现在登录的时候也出现了对所有“property”属性值的验证,怎么能把对Userform里的不同方法(注册,登录,修改密码)等分开验证呢?

解决方案 »

  1.   

    好像是用ValidatorForm 的一个子类 ValidatorActionForm 去百度搜下就有了
      

  2.   

    不是的,我是只如果status的值不一样的时候,对于页面怎么判断,因为一个Userform下的status可能有insert、login、update多种
      

  3.   

    獲得相應屬性,分別在action里寫相應驗證方法即可。
      

  4.   

    注册,登录,修改密码每一个不都是一个action吗
    name="注册action"就可以了,不要写整个form
      

  5.   

    楼上的意思是把<form name="xxform">改成<action name="">?