Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вывод ошибок в struts2

833
12 декабря 2007 года
leich
135 / / 27.09.2006
Привет. Такой вопрос: можно ли в стратсе выводить ошибки? Я пробовал тег <s:actionerror /> и в коде ипользовал addActionError - но это работает только для случаев когда поститься целая форма т.е. в методе execute только, да еще с переходом на другую страницу. А мне нужно чтобы ошибки выводились во время генерации страницы. Т.е. у меня есть <s:iterator value="list"... неважно какой. Есть функция List getList... которая вызывается стратсом чтобы заполнить итератор. И допустим в функции getList происходит ошибка. Как мне вывести эту ошибку на ту же страницу где нибудь сверху - а стратс пускай дальше продолжает генерировать страницу. Есть ли в стратсе средства для этого? Если нет, то подскажите пожалуйста как эту задачу проще всего решить. А то я что то кроме валидаций форм ничего не могу найти по этой теме - блин как будто данные могут тока в формах находиться.

PS Сейчас у меня сделано таким образом:
В jsp в начале страницы есть текст:

 
Код:
<s:label key="InitForm" />
<s:actionerror />


В классе на getInitForm() прописана вся инициализация формы и заполнение массива ошибок. Таким образом у меня сначала инициализируются все данные, потом выводятся все ошибки и потом уже выводятся сами данные. Но как-то это мне все не нравится как смотрится ибо как-то по ламерски слишком. Если никто не знает про ошибки, подскажите пож. как этот вариант улучшить.
34K
14 декабря 2007 года
DeadlyKiss
6 / / 14.12.2007
Однозначно можно :))

В ActionSupport есть такой метод как getFieldErrors() :)
833
14 декабря 2007 года
leich
135 / / 27.09.2006
Ну getFieldErrors() как я понял берет ошибки которые ставит addFieldErrors() ? Там проблема в том что стратс же последовательно обращается к объектам на странице т.е. я заметил что допустим идет вызов getUsername.... - и этот username сразуже выводится на страницу - затем идет допустим getPassword и password тут же выводится . т.е. если ошибка произошла к примеру в getUsername, то вывести ее наверх уже невозможно, так как часть контента уже ушла к юзеру. Так же невозможно сделать редирект по той же причине. Я решил проблему при помощи перехватчиков - prepare и workflow. На prepare делаю всю инициализацию формы , а на workflow вывожу ошибку если была. Но может кто знает лучшее решение?
Да и сейчас вопрос возник опять по стратсу спрошу заодно: у меня редирект с execute ведет на туже страницу - т.е. есть набор записей - я какую нить удалил (в методе execute) и результатом у execute выдал тот же action. Все здорово стратс сам дописывает get параметры сверху - но и post походу тоже) И это все дело блин зацикливается). Кто нить знает как сделать чтоб post параметры не шли в результат на execut'е - я пробовал result у action'а заредиректить но не помогло.
34K
14 декабря 2007 года
DeadlyKiss
6 / / 14.12.2007
Фигней ты сnрадаеш , вроде бы , как бы . Не знаю что ты там мутишь, но все это дело работает на ура. Какие еще части контента ?

Работает валидация помоему довольно просто , проще некуда . При сабмити , валидируется все поля интерсепторам , которой указан в стратс конфиге , если валидация по какимто полям не проходит то для них вызывается addFieldErrors . После того как проверятся все поля и fieldErrors мэп не пуст , то выполнение перебрасывается на action который у тебя указан в cтратс конфиге в результе input, в противном случае на твой экшн.Соотвественно получить все поля по которым не прошла валидация можна с помощью getFieldErrors

Я б те советовал не извращаться , а делать как те люди советуют (слава Богу у мну опыта работы со стратсом вторым года полтора)

p.s. Да и формулируй пожалуйста вопросы и проблему по точней .
34K
14 декабря 2007 года
DeadlyKiss
6 / / 14.12.2007
кстати я так и не понял чем тебя тег fielderror не устраивает
833
16 декабря 2007 года
leich
135 / / 27.09.2006
Да нет в том то и дело что валидация не при сабмите - с этим то я
разобрался - а просто проверка при обычной загрузке страницы -тоже ведь валидация. Но и с этим я тож разобрался.

Вот а теперь проблема что при execute сохраняются пост парамеры.И при редиректе на туже страницу снова вызывается тотже execute и все зацикливается - можно конечно как нибудь это вручную заклинить - но наверное в стратсе есть какое нить решение на такой случай).
83K
18 мая 2012 года
Lakomka
1 / / 18.05.2012
У меня такая же проблема - происходит валидация при загрузке страницы, выводятся надписи ошибок. Велидация декларативная - использую xml файл для записи правил и сообщений. Есть ли в файлах настройки Struts2 пункты для отключения валидации при загрузке страницы? Заранее спсибо!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог