spingMVC Rest风格如何实现拦截异常返回对应异常码

最近开始要用SpringMVC转换之前WSDL WebService,返回的是json串.对于异常情况,比如传递了错误参数,需要返回json的异常码.之前对这块完全没有接触过,所以一点头绪都没.网上瞎找半天还是没结果.

阅读 5.8k
1 个回答

spring的注解校验好像不支持rest ajax请求,他是为了表单页面MVC,
只能自己写检验判断,不过可通过@ControllerAdvice 做全局异常判断,来返回json格式结果如我现在这样


@ControllerAdvice
public class GlobalExceptionHandler {
protected final Logger log = LoggerFactory.getLogger(getClass());

@ResponseBody
@ExceptionHandler(Exception.class)
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
public String handle(Exception e) {
    log.error(null, e);
    return AjaxResult.NewFailureInstance(e).toJson();
}

@ResponseBody
@ExceptionHandler(InvalidTokenException.class)
@ResponseStatus(value = HttpStatus.UNAUTHORIZED)
public String handleInvalidTokenException(InvalidTokenException e) {
    return AjaxResult.NewFailureInstance(e).toJson();
}

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进