springMvc基于注解的异常处理

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;

}

}

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2312438