我目的为了验证两个密码字段是否相等。
运行没有报错,并且能够对password2的required进行验证。但就是没有进入vaildwhen验证。
问题出错在生成的js中找不到vaildwhen,涉及到的文件在下面,jsp页面等等都是ok的,因为我运行空值验证是正常的。请解答一下:vaildwhen的介绍我也看了不少,复制出来就别答了,要能解决我现有问题的,我的是struts 1.2.7,有antlr这个包。
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
写有
<form name="espUserBean">
    <field property="="password1" depends="required">
       <arg key="="msg.password1.error" />
    </field>
    <field property="="password2" depends="validwhen,required">
       <arg key="msg.confirm.password" />
        <var>  
          <var-name>test</var-name>
          <var-value>(password1== *this*)</var-value>
        </var>
      </field>
  </form>
================================
validator-rules.xml
写有
 <validator name="validwhen"
          msg="errors.required"
                 classname="org.apache.struts.validator.validwhen.ValidWhen"
                 method="validateValidWhen"
                 methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"/>