Средство проверки Struts2 Action, делегирует проверку модели с помощью атрибута type=visitor.

Я столкнулся с проблемой при проверке Struts2.

Мой класс действий NotificationsAction

Мой класс модели UserNotificationsForm .

Я создал NotificationsAction-validation.xml

<validators>         
    <field name="userNotificationForm">
        <field-validator type="visitor">
            <param name="appendPrefix">false</param>
            <message/>
        </field-validator>
    </field>

и UserNotificationsForm-notifications_update-validation.xml есть

<field name="userNotificationForm.email">
    <field-validator type="requiredstring">
        <message key="register.validation.email" />
    </field-validator>
    <field-validator type="email-custom">
        <message key="register.validation.email.format" />
    </field-validator>
</field>

Когда я вставляю неправильный адрес электронной почты, он не проверяется должным образом


person user3239669    schedule 18.02.2014    source источник
comment
Непонятно, откуда берется имя файла проверки вашего посетителя. notifications_update Ваш метод? Не уверен, что вы можете использовать посетителя таким образом. Попробуйте переименовать его в UserNotificationsForm-validation.xml и убедитесь, что он находится на том же пути, что и UserNotificationsForm, а НЕ на пути действия.   -  person Andrea Ligios    schedule 18.02.2014
comment
уведомления_обновление — это метод. UserNotificationsForm-validation.xml, я пробовал так, тоже не повезло   -  person user3239669    schedule 18.02.2014
comment
Это должно быть имя класса Java, а не экземпляра. Это ? И это на пути, который я просил вас проверить?   -  person Andrea Ligios    schedule 18.02.2014
comment
Электронная почта работает?   -  person Andrea Ligios    schedule 18.02.2014
comment
да, электронная почта работает нормально. путь одинаков для UserNotificationsForm и UserNotificationsForm-notifications_update-validation.xml   -  person user3239669    schedule 18.02.2014
comment
когда я помещаю правильный адрес электронной почты в форму, выполняется метод действия, в случае неправильного метода электронной почты не вызывается   -  person user3239669    schedule 18.02.2014
comment
РЖУ НЕ МОГУ ! Это нормальное поведение! Если проверка не пройдена, он вернет INPUT до достижения метода Action. Настройте результат INPUT и <s:fielderror> и вы увидите. Это отличается от того, что он не проверяет правильно. Подробнее об этом   -  person Andrea Ligios    schedule 18.02.2014
comment
но в другом случае вызывается метод действия, и в этом методе мы проверяем ArrayList‹ErrorMsgForm› errorList = doGenericValidation();.   -  person user3239669    schedule 18.02.2014
comment
извините, может быть, я делаю какую-то глупую ошибку, потому что в моем проекте это работает нормально.   -  person user3239669    schedule 18.02.2014