springMvc基于注解的异常处理不用配置任何东西,只要启动注解扫描器,他的优先级高于全局的异常处理,这个处理后,全局的异常处理不会再处理
1,定义一个父类抽象Controller,这个里面写注解异常处理方法,其就相当于一个公用的异常捕捉处理器
2,其他controller继承即可,在相应的controller方法抛出父类指定的异常即可,然后父类这个异常捕捉器处理
http://blog.csdn.net/chonggaoing/article/details/42803299
@Controller
public class OpmRoleController extends BaseController {
@RequestMapping("/system/opmRole/opmdel")
public ModelAndView opmdel(@RequestParam(value = "ids", required = false) String ids,OpmUserVo opmUser,HttpServletRequest request,Model modle) throws Exception {
throw new ServiceException("删除失败");
}
}
public abstract class BaseController {
@Autowired
private HttpServletRequest request;
@Autowired
private ResourceBundleMessageSource _res;
@ExceptionHandler(Exception.class)
public ModelAndView exception(Exception e, HttpServletRequest request) {
e.printStackTrace();
request.setAttribute("exception", e);
if (ServerInfo.isAjax(request) || request.getParameter("ajax") != null) {
}
ModelAndView mav = new ModelAndView("404");
mav.addObject("statusCode", 300);
mav.addObject("message", e.getMessage());
mav.addObject("callbackType", "closeCurrent");
//mav.addObject("navTabId", navtab);这省略时下面的也没有用
//mav.addObject("forwardUrl", "404");
return mav;
}
}