处理与任何控制器的请求路径Spring MVC不匹配的请求

时间:2015-09-28 17:37:27

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

如果用户输入不受任何控制器处理的请求路径,我想显示自定义404错误页面。

假设我只有一个控制器,它处理以下请求路径:path1, path2 and path3。如果用户输入path4,如何显示自定义404错误页面?目前,Tomcat显示自己的404错误页面。我想使用注释,而不是通过配置任何xml文件来实现此任务。

我目前的方法并没有达到这个要求。可能配置任何过滤器,但我不知道这种方法。因此,我将很感激任何有关它的想法。

这是我的代码:

public class WebAppContextInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext annotationConfigWebApplicationContext = new AnnotationConfigWebApplicationContext();
        annotationConfigWebApplicationContext.register(WebContextConfiguration.class);

        DispatcherServlet dispatcherServlet = new DispatcherServlet(annotationConfigWebApplicationContext);
        dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);

        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("SpringDispatcher",dispatcherServlet);
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
        servletContext.setInitParameter("spring.profiles.active","demo");
    }
}

@ControllerAdvice
class GlobalControllerExceptionHandler {

    @ExceptionHandler(NoHandlerFoundException.class)
    public String handleConflict() {
        return "404_error_page";
    }
}

0 个答案:

没有答案