如果用户输入不受任何控制器处理的请求路径,我想显示自定义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";
}
}