带有Spring Form的Tomcat 404页面

时间:2012-01-15 20:50:22

标签: spring java-ee tomcat spring-mvc http-status-code-404

在我的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也不是   bean名称“searchCriteria”的普通目标对象可用作请求属性

我想在每个页面上都有这个搜索表单,包括错误页面。有没有办法做到这一点?我意识到404,因为我在上面配置它不会转到servlet ...所以如何将请求属性添加到模型中?

2 个答案:

答案 0 :(得分:1)

一种解决方案是将搜索表单编码为JSP /模板中的纯HTML,以便删除对表单绑定对象的任何依赖。对于带有文本输入和提交按钮的简单搜索表单,这应该不是问题。

答案 1 :(得分:0)

执行此操作的方法是将错误页面映射到servlet。在servlet中,您可以像在任何其他servlet中一样向模型添加内容。要将错误页面映射到servlet,请在web.xml文件中添加以下内容:

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

其中“error”是servlet名称,“generalError”是请求映射。