我正在尝试验证两个字段,一个是数字,另一个是网址。该字段中至少有一个必须具有有效值。如果数字字段具有值且它是有效数字,或者如果存在url字段并且它是有效的URL,则验证将被传递。
我使用“requiredif”和“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字段。但我看到验证器验证了字段并显示错误,因此BOTH字段是必需的。如何将其作为OR条件?我不确定var值中的表达式是否适用于requiredif,因为我发现它只适用于validwhen(由于版本问题我无法使用)。如何在OR条件下验证这两个字段?
答案 0 :(得分:0)
你没有说出你正在使用的Struts版本,但是自从......很长一段时间以来,它已经被弃用了。 You should be using validwhen, described here。有一个你想要的例子。