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

时间:2011-09-09 02:20:07

标签: struts validation struts-validation

我正在尝试验证两个字段,一个是数字,另一个是网址。该字段中至少有一个必须具有有效值。如果数字字段具有值且它是有效数字,或者如果存在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条件下验证这两个字段?

1 个答案:

答案 0 :(得分:0)

你没有说出你正在使用的Struts版本,但是自从......很长一段时间以来,它已经被弃用了。 You should be using validwhen, described here。有一个你想要的例子。