如何在Spring / MVC 3.0应用程序中使用瓷砖的常见错误页面模板?

我有一个Spring MVC / 3.0应用程序使用tile作为它的视图,这工作正常,但我无法弄清楚如何让错误页面也使用tile。

我在我的web.xml

  404 /WEB-INF/error/404.jsp  

作为普通视图不使用tile工作正常,但是当我将位置更改为其中一个视图名称时,找不到视图并呈现普通错误页面。

我的视图的tiles.xml文件包含以下定义

    

我正在通过弹簧配置瓷砖如下:

    /WEB-INF/**/tiles.xml    

我怀疑这一切都是因为视图不是来自弹簧本身?

您需要在web.xml中添加“layouted”jsp。 以下是解释代码:

 // Your web.xml should look like this:  404 /WEB-INF/error/layout-404.jsp  // Your layout-404.jsp should look like this: <%@page isELIgnored="false" %> <%@page contentType="text/html"%> <%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>  // Your layout def should look like this:    

在tile中定义错误模板会更简单:

    

并使用Spring MVC处理它,例如:

 @ExceptionHandler({ MissingResourceException.class }) @ResponseStatus(HttpStatus.NOT_FOUND) public String handleMissingResource(Exception e) { return "error/404"; } 

在这种情况下,您不必向web.xml添加错误页面,每个错误页面一个.jsp文件就足够了。