Java 无法呈现非字符串的属性,toString在SPRING MVC中返回:null错误

Java 无法呈现非字符串的属性,toString在SPRING MVC中返回:null错误,java,spring,spring-mvc,error-handling,Java,Spring,Spring Mvc,Error Handling,我正试图通过以下教程为我的spring mvc项目创建一个通用错误处理程序: 但在我的项目中,我正在使用tiles defs,当我在浏览器中访问错误页面时,会出现以下错误: org.apache.tiles.request.render.CannotRenderException: Cannot render an attribute that is not a string, toString returns: null at org.apache.tiles.impl.BasicTilesC

我正试图通过以下教程为我的spring mvc项目创建一个通用错误处理程序:

但在我的项目中,我正在使用tiles defs,当我在浏览器中访问错误页面时,会出现以下错误:

org.apache.tiles.request.render.CannotRenderException: Cannot render an attribute that is not a string, toString returns: null
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:255)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:397)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:238)
at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:221)
at org.apache.tiles.renderer.DefinitionRenderer.render(DefinitionRenderer.java:59)
at org.springframework.web.servlet.view.tiles3.TilesView.renderMergedOutputModel(TilesView.java:114)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:267)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1217)
at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1005)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:952)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
以下是我的tiles defs配置:

    <definition name="/error/generic_error">
    <put-attribute name="body" value="/WEB-INF/views/error/generic_error.jsp" />
    <put-attribute name="browserTitle" value="Error Screen" />
    </definition>


我无法找到此问题的原因或解决方案,因此非常感谢您的帮助。

您需要在平铺定义中添加基础模板。它应该扩展一个模板,或者您必须在定义中提到路径属性

您使用的是哪个Tiles版本?我使用的是Tiles-config\u 3\u 0。是的。这就解决了问题。非常感谢d如果平铺定义的“扩展”属性指向不存在的模板(例如,如果拼错了父模板名称),也会发生此错误。