import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Define interceptor
* @see
* @date 2019-04-27 15:40
* @version V1.0.0
**/
@Component
public class VueRouteInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
if (response.getStatus() == HttpServletResponse.SC_NOT_FOUND) {
//将状态码置为200,不然状态码依然是404
response.setStatus(HttpServletResponse.SC_OK);
//加载vue的index.html
if (modelAndView != null){
modelAndView.setViewName("/index.html");
}
}
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
}
}