+ -
当前位置:首页 → 问答吧 → struts- validation时minLength始终不生效

struts- validation时minLength始终不生效

时间:2010-07-21

来源:互联网

最近在学struts。自己动手实验了一个很简单的Registration Webapp。注册页面有3项内容:
用户id(userid),密码(pwd1)以及密码确认(pwd2)。

但是遇见了一个问题始终不得其解,觉得很诡异。具体情况是这样的:
我用Validator Framework来进行输入数据的验证,不符合要求则显示错误信息。

我的要求是用户名不为空,只接受数字或字母,并且长度不得小于5。
密码不为空,只接受数字或字母。
密码确认与密码应一致,不一致则报错。

但问题出现了,我用minLength限制长度却总是无效,用户id仅为一个字母时也不会报错。并且还有副作用:一旦用户id确认成功了,
就不进行密码和确认密码的validation了(之所以这么说,是因为一旦用户id验证通过后,直接转至success页面了。而如果
用户id未通过,则会正常显示密码和确认密码的错误信息)。
很奇怪,而如果我删除minLength的验证,则一切正常,其他要求全部能满足。

编写的validation.xml具体如下:

<?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="RegistrationForm">

  <field property="userid"
  depends="required,mask,minLength">
 
  <msg name="required" key="reg.error.userid.missing"/>
  <msg name="mask" key="reg.error.userid.alphanum"/>
  <msg name="minLength" key="reg.error.userid.length"/>
   
   
  <var>
  <var-name>mask</var-name>
  <var-value>^[a-z0-9A-Z]*$</var-value>
  </var>
  <var>
  <var-name>minLength</var-name>
  <var-value>5</var-value>
  </var>
  </field>  

  <field property="pwd1"
  depends="required,mask">
   
<msg name="required" key="reg.error.password1.missing"/>
  <msg name="mask" key="reg.error.password1.alphanum"/>
   
  <var>
  <var-name>mask</var-name>
  <var-value>^[a-z0-9A-Z]*$</var-value>
  </var>
  </field>  

  <field property="pwd2" depends="validwhen">
  <msg name="validwhen" key="reg.error.password.mismatch"/>
   
  <var>
  <var-name>test</var-name>
  <var-value>(pwd1==*this*)</var-value>
  </var>
  </field>

  </form>
  </formset>

</form-validation> 

麻烦达人帮忙看看了

作者: pumpkinhead1986   发布时间: 2010-07-21

自己顶先。
还是很困惑,求解

作者: pumpkinhead1986   发布时间: 2010-07-26

热门下载

更多