ErrorViewResolverで切り替える
ErrorViewResolverで簡単に切り替え可能
さらにintercepterでPCかスマホか判定していれば対応した画面に飛ばしてくれる
SampleErrorViewResolver
@Component
public class SampleErrorViewResolver implements ErrorViewResolver {
/**
* 表示決定
*
* @param request
* @param status
* @param model
* @return ModelAndView or null
*/
@Override
public ModelAndView resolveErrorView(HttpServletRequest request, HttpStatus status, Map<String, Object> model) {
boolean mobile = (boolean) request.getAttribute("mobile");
ModelAndView modelAndView = new ModelAndView();
mav.addAllObjects(model);
if (status == HttpStatus.NOT_FOUND) {
// 404
if (!mobile) {
modelAndView.setViewName("/404");
} else {
modelAndView.setViewName("/mobile/404");
}
} else {
// 404 以外はエラー画面へ
if (!mobile) {
modelAndView.setViewName("/error");
} else {
modelAndView.setViewName("/mobile/error");
}
}
return modelAndView;
}
}