SpringMVC统一异常处理 返回JSON解决方案
来源:互联网 发布:淘宝店铺导航栏代码 编辑:程序博客网 时间:2024/05/21 21:48
1.目的
本方案通过JSON的格式将后台出现的错误通过JSON传递给前台,主要用于Ajax发起请求而后台操作不通过时的解决方案
2.代码
统一异常 JSON返回对象
package bishe.exception;/** * @author Xin *统一JSON返回对象 * @param <T> */public class ErrorInfo<T> {public static final Integer OK = 0;public static final Integer ERROR = -1;private Integer code;private String message;private String url;private T data;public ErrorInfo() {}public ErrorInfo(Integer code) {this.code = code;}public ErrorInfo(Integer code,String message) {this.code = code;this.message = message;}public ErrorInfo(Integer code,String message,String url) {this.code = code;this.message = message;this.url = url;}public ErrorInfo(Integer code,String message,String url,T data) {this.code = code;this.message = message;this.url = url;this.data = data;}public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public T getData() {return data;}public void setData(T data) {this.data = data;}public static Integer getOk() {return OK;}public static Integer getError() {return ERROR;}@Overridepublic String toString() {return "ErrorInfo [code=" + code + ", message=" + message + ", url=" + url + ", data=" + data + "]";}}自定义异常AjaxException
package bishe.exception;public class AjaxException extends RuntimeException{ public AjaxException(String message) { super(message);} public AjaxException() { super(); }}全局统一异常处理
package bishe.exception;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.http.HttpRequest;import org.apache.poi.ss.formula.functions.T;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.ResponseBody;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import bishe.exception.AjaxException;@ControllerAdvice@EnableWebMvcpublic class GlobalExceptionHandler{@ExceptionHandler(AjaxException.class)@ResponseBodypublic ErrorInfo<String>ajaxException(HttpServletRequest req,Exception e){ErrorInfo<String> errInfo = new ErrorInfo<String>();errInfo.setCode(ErrorInfo.ERROR);errInfo.setMessage(e.getMessage());errInfo.setUrl(req.getRequestURI().toString());errInfo.setData("some data");return errInfo;}}模拟抛出异常
@RequestMapping(value = "/sx.do", method = { RequestMethod.GET, RequestMethod.POST })public ModelAndView sx(Integer type) {throw new AjaxException("Ajax调用出错");}
访问commic/borrow/sx.do【根据自己的路径访问】
返回JSON异常
流程:
程序补抓到异常抛出,统一在control层抛出,如果是在DAO层、Service层抛出到control层,然后全局的自定义异常处理类会捕获,对异常进行处理,通过@responseBody注解返回JSON。
@responseBody 是一个注解,通过引入其他库的,具体自己查阅。
阅读全文
0 0
- SpringMVC统一异常处理 返回JSON解决方案
- JSON统一格式返回值,统一异常处理
- springmvc统一异常处理
- SpringMVC异常统一处理
- SpringMVC统一异常处理
- springMVC统一异常处理
- springmvc 统一处理异常
- springmvc 统一异常处理
- springmvc 统一异常处理
- springmvc异常统一处理
- springMVC异常统一处理
- SpringMVC异常统一处理
- springMVC异常统一处理
- SpringMVC统一异常处理
- SpringMVC统一异常处理
- springmvc统一异常处理
- springmvc异常统一处理
- spring mvc统一处理异常时候返回json或xml
- Spring 整合 RocketMQ
- 二叉树中的排序树,Java版
- (POJ
- 走心安利: 工作中简单易用的开发工具
- Mac版IDEA入门
- SpringMVC统一异常处理 返回JSON解决方案
- Unity 3D
- angularjs 做一个笔记本
- deep learning 调试
- 记录一下spring的设置注入 构造器注入
- sklearn 数据加载,数据归一,特征选择,逻辑回归,贝叶斯,k近邻,决策树,SVM
- python中字符编码问题详解
- intellij 配置jrebel
- hdu 6208 The Dominator of Strings