一,状态码枚举类
public enum StatusCode {SUCCESS(200),INFO(251),WARNING(300),FAIL(351),NOT_LOGIN(401),UNAUTHORIZED(403),NOT_FOUND(404),ERROR(500);public int code;StatusCode(int code){this.code= code;}
}
二、封装返回对象 方式一
public class AjaxResult extends HashMap<String, Object>
{private static final long serialVersionUID = 1L;/** 状态码 */public static final String CODE_TAG = "code";/** 返回内容 */public static final String MSG_TAG = "msg";/** 数据对象 */public static final String DATA_TAG = "data";/*** 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。*/public AjaxResult(){}/*** 初始化一个新创建的 AjaxResult 对象* * @param code 状态码* @param msg 返回内容*/public AjaxResult(int code, String msg){super.put(CODE_TAG, code);super.put(MSG_TAG, msg);}/*** 初始化一个新创建的 AjaxResult 对象* * @param code 状态码* @param msg 返回内容* @param data 数据对象*/public AjaxResult(int code, String msg, Object data){super.put(CODE_TAG, code);super.put(MSG_TAG, msg);if (StringUtils.isNotNull(data)){super.put(DATA_TAG, data);}}/*** 返回成功消息* * @return 成功消息*/public static AjaxResult success(){return AjaxResult.success("操作成功");}/*** 返回成功数据* * @return 成功消息*/public static AjaxResult success(Object data){return AjaxResult.success("操作成功", data);}/*** 返回成功消息* * @param msg 返回内容* @return 成功消息*/public static AjaxResult success(String msg){return AjaxResult.success(msg, null);}/*** 返回成功消息* * @param msg 返回内容* @param data 数据对象* @return 成功消息*/public static AjaxResult success(String msg, Object data){return new AjaxResult(StatusCode.SUCCESS.code, msg, data);}/*** 返回错误消息* * @return*/public static AjaxResult error(){return AjaxResult.error("操作失败");}/*** 返回错误消息* * @param msg 返回内容* @return 警告消息*/public static AjaxResult error(String msg){return AjaxResult.error(msg, null);}/*** 返回错误消息* * @param msg 返回内容* @param data 数据对象* @return 警告消息*/public static AjaxResult error(String msg, Object data){return new AjaxResult(StatusCode.ERROR.code, msg, data);}/*** 返回错误消息* * @param code 状态码* @param msg 返回内容* @return 警告消息*/public static AjaxResult error(int code, String msg){return new AjaxResult(code, msg, null);}
}
调用: AjaxResult调用相应的方法即可
方式二:借助上面的枚举类,同样需要一个返回对象的封装
public class AjaxResult {public int code;private String msg; private Object data;public AjaxResult setCode(StatusCode statusCode) {this.code = statusCode.code;return this;}public AjaxResult setCode(int code) {this.code = code;return this;}public AjaxResult setMsg(String msg) {this.msg = msg;return this;}public AjaxResult setData(Object data) {this.data = data;return this;}
}
同时需要对返回对象的封装处理(相当于工具类)
public class ResponseUtils {private final static String SUCCESS = "success";public static AjaxResult responseOk() {return new AjaxResult().setCode(StatusCode.SUCCESS).setMsg(SUCCESS);}public static AjaxResult responseOk(Object data) {return new AjaxResult().setCode(StatusCode.SUCCESS).setMsg(SUCCESS).setData(data);}public static AjaxResult setResponse(int code,String msg) {return new AjaxResult().setCode(code).setMsg(msg);}public static AjaxResult setResponse(int code, String msg, Object data) {return new AjaxResult().setCode(code).setMsg(msg).setData(data);}
}
调用:
ResponseUtils.setResponse(StatusCode.ERROR.code,"msg",data);
ResponseUtils.responseOk();