tile2 - настраиваемые страницы ошибок 404

Я пытаюсь сделать то же самое, что и парень из этой ветки: Как получить общие шаблоны страниц ошибок с плитками в приложении Spring / MVC 3.0?

Однако, следуя принятому решению этого вопроса, похоже, не дает таких же результатов для моих ошибок 404. Однако точно такая же установка ДЕЙСТВИТЕЛЬНО работает для 500 ошибок! У меня такой код:

tile.xml:

<definition name="error/404" extends="baseLayout">
    <put-attribute name="body" value="/WEB-INF/jsp/error/404.jsp" />
</definition>

/WEB-INF/jsp/error/404.jsp:

Error 404: This page doesn't exist, use the navigation on the left to find what you need

/WEB-INF/jsp/error/fullErrorPage/404.jsp:

<!-- this page is used by the web.xml to display an error VIEW, not just the error -->
<%@page isELIgnored="false" %>
<%@page contentType="text/html"%>
<%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>

<!-- insert the view -->
<tiles:insertDefinition name="error/404" /> 

web.xml:

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

Я думаю, проблема в том, что когда я перехожу к URL-адресу, который, как мне известно, не существует, чтобы вызвать ошибку 404, представление «error / 404» недоступно. Все ссылки работают нормально, поскольку, если я изменю fullErrorPage / 404.jsp на общую страницу с ошибкой и удалю «tile: insertDefinition», страница будет отображаться правильно. Однако всякий раз, когда я пытаюсь использовать «tile: insertDefinition», я получаю вместо этого стандартную страницу с ошибкой 404.

Файлы журнала tomcat также, похоже, указывают на то, что происходит какой-то бесконечный цикл, поскольку я предполагаю, что каждый раз, когда он пытается отобразить 'fullErrorPage / 404.jsp' с помощью 'tile: insertDefinition', он генерирует ошибку 404, а затем пытается еще раз отобразить fullErrorPage / 404.jsp.


person Fittersman    schedule 07.02.2012    source источник
comment
может быть, имя error/404 с косой чертой вызывает проблемы при попытке решить его?   -  person driangle    schedule 07.02.2012
comment
Нет, просто изменил его на «404», и он делает то же самое.   -  person Fittersman    schedule 07.02.2012