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

发布于 2024-12-03 13:43:54 字数 1090 浏览 0 评论 0原文

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

I am trying to validate two fields one is a number and other is an url. At least one of this field has to have a valid value. If the number field has value and it is valid number or if the url field is present and it is a valid url the validation is passed.

I am using "requiredif" and "mask" to check this. The below is the example of the number checking,

<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>

In this similar manner, I am checking for the url field as well. But I see the validator validates both the field and shows up error such that BOTH fields are mandatory. How do I make it as a OR condition? I am not sure if the expression in the var value is right for requiredif, because I kind of found it works only for validwhen(which I can't use due to version issues). How do I validated these two fields on a OR condition?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挽袖吟 2024-12-10 13:43:54

你没有说你正在使用什么 Struts 版本,但 requiredif 已经被弃用了……很长一段时间了。 您应该使用 validwhen,如下所述。有一个你想要的例子。

You don't say what Struts version you're using, but requiredif has been deprecated since... a long time. You should be using validwhen, described here. There is an example of what you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文