обязательный валидатор struts для проверки двух полей в зависимости от условия

Я пытаюсь проверить два поля, одно из которых является числом, а другое - 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 (которое я не могу использовать из-за проблем с версией). Как проверить эти два поля по условию ИЛИ?


person Abhishek    schedule 09.09.2011    source источник


Ответы (1)


Вы не говорите, какую версию Struts вы используете, но requiredif устарела с... долгого времени. Вы должны использовать validwhen, как описано здесь. Есть пример того, что вы хотите.

person Dave Newton    schedule 09.09.2011
comment
спасибо за указатель. Теперь я использую что-то вроде этого ‹var› ‹var-name›test‹/var-name› ‹var-value›((url == null) and (this != null))‹ /var-value› ‹/var› Но это выдает ошибку, когда URL-адрес нулевой, а поле номбре является допустимым числом :( Что-то не так с условиями? - person Abhishek; 09.09.2011
comment
Я не знаю; не может видеть остальную часть конфигурации проверки. - person Dave Newton; 09.09.2011