当前位置: 代码迷 >> 综合 >> 自定义返回状态、信息、数据
  详细解决方案

自定义返回状态、信息、数据

热度:1   发布时间:2024-02-28 20:45:30.0

一,状态码枚举类

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();

  相关解决方案