1 つは数字、もう 1 つは URL の 2 つのフィールドを検証しようとしています。このフィールドの少なくとも 1 つに有効な値が必要です。数値フィールドに値があり、それが有効な数値である場合、または 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 (バージョンの問題で使用できない) でのみ機能することがわかったためです。これら 2 つのフィールドを OR 条件で検証するにはどうすればよいですか?