Обработка исключений в Struts 1 ActionForm - PullRequest
3 голосов
/ 12 августа 2010

Я работаю над старым веб-приложением, которое использует Struts 1.1.Для выполнения бизнес-проверок (сложных проверок, включающих несколько свойств формы и вызов внутренних служб), я написал реализацию ActionForm, которая вызывает цепочку валидаторов для метода ActionForm.validate.

Цепочка валидаторов реализована с использованиемсеть общин.Все хорошо, за исключением того, что когда исключение возникает в ActionForm.validate, оно не перехватывается обработчиком исключений Struts, а на экране отображается трассировка стека.Обработчик исключений Struts не улавливает это

Есть ли способ избежать трассировки стека на странице и распространить исключение на обработчик исключений Struts?

Спасибо

1 Ответ

2 голосов
/ 21 июля 2011

Может быть, лучше, чтобы валидаторы вообще не создавали исключений.Проверки предназначены для проверки введенных пользователем данных по таким ограничениям, как minChars, maxChars, надежность / проверка пароля, синтаксическая корректность электронной почты, isNumber и так далее.Если валидатор терпит неудачу, он должен только возвращать false - никогда не выдавать исключение.Смотрите примеры на http://struts.apache.org/1.2.4/userGuide/dev_validator.html

Если ваш валидатор вызывает бэкэнд-функции ... что-то не так - я думаю.Валидатор должен добавлять только полевые ошибки.

Если есть ошибки вследствие синтаксически правильных входных данных (например, неверный пользователь / пароль для входа в систему), тогда ваше приложение Struts (ваши действия) должно обработать это и вернуть ошибки действияпользователю.Это можно сделать путем перенаправления на страницы ошибок при появлении исключений (UserNotLoggedInException).

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