没有重定向的Spring错误页面

时间:2014-01-13 16:40:10

标签: spring spring-mvc

我正在尝试实现一个错误页面,如果出现问题但没有触发重定向就会显示。

据我所知,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请求到这个网址。

有人对我做错了什么有任何建议吗?

1 个答案:

答案 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 /错误