Spring RsourceHandler的自定义404页面

时间:2017-09-15 06:53:33

标签: spring-mvc

我有一个带有自定义404页面的Spring / Tiles 3应用程序。这适用于除静态资源之外的所有内容。

配置:

public class WebApplication implements WebApplicationInitializer {
    @Override
    public void onStartup(final ServletContext ctx) throws ServletException         {
    final AnnotationConfigWebApplicationContext webCtx = new AnnotationConfigWebApplicationContext();
    webCtx.register(GlobalExceptionHandler.class,...);
    webCtx.setServletContext(ctx);
    final DispatcherServlet dispatcherServlet = new DispatcherServlet(webCtx);
    dispatcherServlet.setThrowExceptionIfNoHandlerFound(true);

全局异常处理程序,指向右侧切片视图

@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(NoHandlerFoundException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public ModelAndView handle(final NoHandlerFoundException exception) {
        return new ModelAndView("exceptions/NotFoundException");
    }
...

这很好用。

但是,我也有一些静态资源

@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    registry.addResourceHandler("/images/**").addResourceLocations("/images/");
}

资源是服务器正常的,但是当我尝试访问不存在的资源时,我从应用程序服务器获取默认的404页面。如何告诉spring将GlobalExceptionHandler用于静态资源?

0 个答案:

没有答案