无法呈现不是字符串的属性,toString在SPRING MVC中返回:null ERROR

时间:2014-06-26 06:49:12

标签: java spring spring-mvc error-handling

我正在尝试按照本教程为我的spring mvc项目创建一个通用的错误处理程序:http://www.mkyong.com/spring-mvc/spring-mvc-exceptionhandler-example/

但在我的项目中,我使用的是tile-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>

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

1 个答案:

答案 0 :(得分:4)

您需要在切片定义中添加基本模板。它应该扩展模板,或者你必须在你的定义<definition name="/error/generic_error" path= "{your-path}">

中提到路径属性