requiredif struts 验证器根据条件检查两个字段
我正在尝试验证两个字段,一个是数字,另一个是网址。该字段至少有一个必须具有有效值。如果数字字段有值并且是有效的数字,或者如果 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你没有说你正在使用什么 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.