在我的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 ...所以如何将请求属性添加到模型中?
答案 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”是请求映射。