Я пытаюсь проверить два поля: одно - число, а другое - URL. По крайней мере одно из этих полей должно иметь допустимое значение. Если числовое поле имеет значение, и оно является действительным числом, или если поле 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. Но я вижу, что валидатор проверяет оба поля и выдает ошибку, так что ОБА поля являются обязательными. Как мне сделать это как условие ИЛИ? Я не уверен, является ли выражение в значении var правильным для requiredif, потому что я вроде нашел, что оно работает только для validwhen (который я не могу использовать из-за проблем с версией). Как мне проверить эти два поля при условии ИЛИ?