本人用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里的不同方法(注册,登录,修改密码)等分开验证呢?
我在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里的不同方法(注册,登录,修改密码)等分开验证呢?
name="注册action"就可以了,不要写整个form