我正在尝试实现一个错误页面,如果出现问题但没有触发重定向就会显示。
据我所知,InternalResourceViewResolver
应该可以解决问题。
我称之为“myurl”,这会导致错误。控制器触发我的“错误”-View并显示视图而不是正常响应,但资源的url仍然是“myurl”。
不幸的是,这不起作用。我的配置:
<bean id="cnManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="ignoreAcceptHeader" value="false" />
<property name="favorPathExtension" value="false" />
<property name="defaultContentType" value="text/html" />
</bean>
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="contentNegotiationManager" ref="cnManager" />
<!-- Define the view resolvers explicitly -->
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/errors/" />
<property name="suffix" value=".html" />
</bean>
</list>
</property>
</bean>
如果我尝试在web-inf中触发我的500.html页面,我只会收到404响应,并且无法找到/WEB-INF/errors/500.html
的消息。此外,日志显示有一个http请求到这个网址。
有人对我做错了什么有任何建议吗?
答案 0 :(得分:0)
在您的web.xml中输入
<error-page>
<error-code>500</error-code>
<location>/errorpage.htm?error=500</location>
</error-page>
然后制作一个控制器
@Controller
public class ErrorPageController {
@RequestMapping(value = "/errorpage.htm", method = RequestMethod.GET)
public String Logout(ModelMap model, @RequestParam int error) {
if(error==500)
model.addAttribute("msg", "Please Give The Correct Input");
return "errorpage";
}
然后制作一个errorpage.jsp隐藏你的WEB-INF /错误