Проблемы при передаче обратной связи между контроллерами для повторного отображения сообщения об ошибке формы - PullRequest
0 голосов
/ 09 мая 2011

Контроллер A показывает некоторые данные и отображает форму.

Форма отправляется на контроллер B.

Когда в контроллере B обнаружены ошибки формы, ее необходимо повторно отобразить с помощьюКонтроллер A.

Для этого требуется return redirect "blah" в контроллере A.

Чтобы передать ошибки обратно в контроллер A с помощью перенаправления, я могу установить сообщение об ошибке в модели:

model.put("errormsg", "look what happened");

Это приводит к раздражающему эффекту размещения всего текста сообщения об ошибке в URL:

/controllera/somemethod?errormsg=look+what+happened

Однако, даже если я вижу текст в URL, при попыткечтобы отобразить его из JSTL, ничего не отображается:

<c:out value="${errormsg}"/>

Есть ли лучший подход ко всему этому?

Ответы [ 3 ]

0 голосов
/ 09 мая 2011

Поместите это на свой JSP:

<c:out value="${param.errormsg}" />
0 голосов
/ 09 мая 2011

Есть ли лучший подход ко всему этому?

ИМХО лучший подход - это использовать стандартную схему: контроллер A показывает форму, данные передаются в контроллер A, и если происходит ошибка контроллера Aотображать ошибки.Если данные действительны, контроллер A перенаправляет их на контроллер B.

0 голосов
/ 09 мая 2011

Я бы порекомендовал:

  1. Модификация контроллера A для принятия запроса HttpServletRequest.
  2. Поместить сообщение об ошибке в запрос в качестве атрибута: req.setAttribute("errormsg", "look what happened");

Выходные данные JSTL должны нормально работать.

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