Требуется, если валидатор распорок проверяет два поля в зависимости от условия - PullRequest
0 голосов
/ 09 сентября 2011

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

1 Ответ

0 голосов
/ 09 сентября 2011

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

...