Проверка Struts 2 настраивается с помощью XML или аннотаций. Ручная проверка в действии также возможна и может сочетаться с проверкой на основе XML и аннотаций.
Проверка также зависит от перехватчиков проверки и рабочего процесса (оба включены в стек перехватчиков по умолчанию). Перехватчик проверки выполняет проверку самостоятельно и создает список ошибок для конкретных полей. Перехватчик рабочего процесса проверяет наличие ошибок валидации: если они обнаружены, он возвращает результат ввода (по умолчанию), возвращая пользователя к форме, которая содержала ошибки валидации.
Если мы используем настройки по умолчанию и наше действие не имеет определенного результата ввода, и есть ошибки проверки (или, кстати, преобразования типа), мы получим сообщение об ошибке, сообщающее нам, что для действия не определен результат ввода. действие.
Это просто: вы сопоставляете валидаторы с полями через файл конфигурации проверки или с помощью аннотаций. Затем примените к действию validation
перехватчик, ссылаясь на него явно или неявно. через стек перехватчика, пользовательский стек или defaultStack
.
При запуске проверки он вызывает диспетчер проверки для выполнения фактической проверки и сохранения ошибок в файле ValidationAware
.
Ваше действие должно реализовать этот интерфейс или просто расширить ActionSupport
там, где это уже реализовано, чтобы избежать ошибок. Затем workflow
interceptor проверяет эти ошибки и, если они обнаружены, они перенаправляют на INPUT
результат, если ошибок не обнаружено, выполняется вызов действия. Вы также можете добавить к действию программную проверку, внедрив Validateable
, который ActionSupport
реализован по умолчанию, поэтому переопределяет validate()
методы.
В дополнение к проверке на основе XML вы также можете применить конфигурацию на основе аннотаций. Это только проверка на стороне сервера, проверка на стороне клиента, применяемая к браузеру с включенным javascript через теги Struts, используемые для рендеринга содержимого проверки на проверяемой странице.
Вся эта концепция неприменима к действию, требующему аутентификации (если только к действию не применяется перехватчик аутентификации). Если вы используете аутентификацию JAAS, вам следует рассмотреть возможность реализации PrincipalAware
или используйте перехватчик roles
, чтобы ограничить доступ к действию, которое проверяет isUserInRole()
. Вы можете использовать Action.LOGIN
результат для возврата на страницу входа в перехватчик аутентификации, если пользователь не аутентифицирован, как в Есть ли способ перенаправить на другой класс действий без использования примера struts.xml
.
person
Roman C
schedule
29.08.2013