Tomcat 404 Page с пружинной формой - PullRequest
1 голос
/ 16 января 2012

На моей странице web.xml ошибка 404 сопоставлена ​​со страницей jsp:

<error-page>
  <error-code>404</error-code>
  <location>/WEB-INF/jsp/errorPages/error404.jsp</location>
</error-page>

Перенаправление на 404 работает нормально. Я добираюсь до error404.jsp. Проблема в том, что у меня есть пружинная форма на странице (форма поиска на каждой странице), которая вызывает ошибки, потому что целевой объект отсутствует в модели. Я получаю следующее исключение:

Причина: java.lang.IllegalStateException: ни BindingResult, ни простой целевой объект для имени компонента 'searchCriteria', доступный как атрибут запроса

Я бы хотел, чтобы эта форма поиска была на каждой странице, включая страницы с ошибками. Есть какой-либо способ сделать это? Я понимаю, что 404, как я настроил выше, не идет к сервлету ... так как я могу получить атрибут запроса в модель?

Ответы [ 2 ]

1 голос
/ 16 января 2012

Одним из решений является кодирование формы поиска в виде простого HTML в вашем JSP / шаблоне, чтобы вы удалили любую зависимость от объекта привязки формы. Для простой формы поиска с кнопкой ввода и отправки текста это не должно быть проблемой.

0 голосов
/ 19 января 2012

Способ сделать это - сопоставить страницы ошибок с сервлетом. В сервлете вы можете добавлять вещи в свою модель так же, как в любом другом сервлете. Чтобы отобразить страницы ошибок в сервлет, добавьте что-то вроде следующего в ваш файл web.xml:

  <error-page>
    <error-code>404</error-code>
    <location>/error/generalError</location>
  </error-page>

где "error" - это имя сервлета, а "generalError" - это отображение запроса.

...