【问题标题】:requiredif struts validator to check two fields based on conditionrequiredif struts验证器根据条件检查两个字段
【发布时间】:2011-11-13 11:09:59
【问题描述】:

我正在尝试验证两个字段,一个是数字,另一个是 url。此字段中至少有一个必须具有有效值。如果 number 字段有值并且它是有效的数字,或者如果 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 字段。但是我看到验证器验证了这两个字段并显示了错误,因此这两个字段都是必需的。如何将其作为 OR 条件?我不确定 var 值中的表达式是否适合 requiredif,因为我发现它仅适用于 validwhen(由于版本问题我无法使用)。如何在 OR 条件下验证这两个字段?

【问题讨论】:

    标签: struts validation struts-validation


    【解决方案1】:

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

    【讨论】:

    • 感谢您的指点。现在我正在使用类似 test((url == null) and (this != null)) 但是当 url 为 null 并且 nombre 字段是有效数字时,这会引发错误 :( 条件有问题吗?
    • 我不知道;看不到其余的验证配置。
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 2019-03-25
    • 1970-01-01
    相关资源
    最近更新 更多