Проверка Struts с несколькими правилами проверки для одного поля - PullRequest
0 голосов
/ 26 июля 2010

Это может быть основной вопрос: я пытаюсь понять, как работает приведенный ниже код проверки Struts:

<field property="myField" depends="validwhen, maxlength">
    <msg name="validwhen" key="error1.key" />
    <msg name="maxlength" key="error2.key"/>
    <var>
        <var-name>test</var-name>
        <var-value> isFieldsShown == "no" </var-value>
    </var>
    <var>
        <var-name>maxlength</var-name>
        <var-value>128</var-value>
    </var>
</field>

Это как сначала проверить правило validwhen , и еслиэто успешно, тогда проверено правило maxlength ?ИЛИ, если validwhen вернет true, то поле считается действительным, не переходя к правилу maxlength вообще?

1 Ответ

0 голосов
/ 26 июля 2010

Прошло много времени с тех пор, как я работал с платформой валидатора, но из того, что я помню, идет что-то вроде следующего.

При проверке поля это поле считается действительным, если все проверки пройдены. Если хотя бы одна проверка не пройдена, поле считается недействительным.

Следует иметь в виду, что если существует список валидаторов для запуска, процесс валидации должен завершиться при первом сбое (не имеет смысла запускать дорогостоящие валидации, если поле было помечено как недействительное, поскольку валидация уже не удалась).

Документация, кажется, указывает на то, что я помню:

validator.dtd - атрибут field.depends : Список валидаторов, разделенных запятыми, которые применяются к этому полю. Для успешной работы поля все валидаторы должны быть успешными .

Field.validate : Запускать все проверки в предложении зависимости по каждому элементу по очереди, возвращая при выходе из строя первого элемента .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...