遇到一个很傻的问题。


表现:

画面可以访问到资源文件(css,js等),刷新下,访问不到,再刷新,又可以访问到。


画面出错

java.lang.NullPointerException
    com.lee.web.interceptor.MainInterceptor.postHandle(MainInterceptor.java:30)
    org.springframework.web.servlet.HandlerExecutionChain.applyPostHandle(HandlerExecutionChain.java:149)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:934)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
    org.springframework.web.servlet.FrameworkServlet.proce***equest(FrameworkServlet.java:936)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)


原因是拦截器里调用了modelAndView.getViewName()

如果是资源的话,modelAndView是null。

开始认为配置了,资源文件的请求就不会被拦截,其实开始会被拦截的。调用时判断一下即可。