需要struts验证器根据条件检查两个字段



我试图验证两个字段,一个是数字,另一个是url。该字段中至少有一个必须具有有效值。如果数字字段有值并且它是有效的数字,或者如果url字段存在并且它是一个有效的url,则验证通过。

我使用"requiredf"one_answers"mask"来检查这个。下面是数字检查的例子,

<field property="nombre"
                 depends="requiredif,mask">
              <msg
                name="mask"
                key="errors.nombre"/>
                    <arg0 key="nombre"/>
              <msg
                name="requiredif"
                key="errors.validateNombreUrl"/>
                    <arg0 key="nombre"/>
              <var>
                <var-name>mask</var-name>
                <var-value>${nombre}</var-value>
              </var>
              <var>
                <var-name>url</var-name>
                <var-value>((url == null) and (*this* == null))</var-value>
              </var>
          </field>

以类似的方式,我也在检查url字段。但我看到验证器验证两个字段并显示错误,这样两个字段都是强制性的。我如何使它成为一个OR条件?我不确定var值中的表达式是否适合requiref,因为我发现它只适用于validwhen(由于版本问题,我无法使用)。如何在OR条件下验证这两个字段?

你没有说你使用的是哪个Struts版本,但是requireif已经被弃用了…很长一段时间。您应该使用这里描述的validwhen。这里有一个你想要的例子

最新更新