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

一,状态码枚举类

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 static final 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 responseOk(String msg, Object data) {
	      return new AjaxResult().setCode(StatusCode.SUCCESS).setMsg(msg).setData(data);
	   }
	 
	   public static  AjaxResult setResponse(int code,String msg) {
	      return new AjaxResult().setCode(code).setMsg(msg);
	   }
}

调用:

ResponseUtils.setResponse(StatusCode.ERROR.code,"msg",data);

ResponseUtils.responseOk();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值