WebUtils封装返回值

在项目会有一些请求来规定返回值给前台,一般封装个jsonobject对象即可,主要包括:CODE:code,MSG:message,DATA:data三个字段
主要有成功和出错的两种情况,这里我们可以封装一个ResponseEnum枚举类专门用于错误代码和错误信息提示
如下类

public enum ResponseEnum {
    /**
     * =====================================
     * 0-99
     * =====================================
     */
    SUCCESS("0", "操作成功"),
    FAILURE("1", "操作失败"),
    INVALID_PARAMS("2", "非法参数"),
    INVALID_SIGN("3", "非法签名"),
    UNKNOWN_ERROR("4", "未知错误"),

   private String code;
   private String message;

    // 构造方法
    private ResponseEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }
    public String getCode() {
        return code;
    }
    public String getMessage() {
        return message;
    }
}

然后写一个webutils类来封装每种返回请求方式

public class WebUtils {

    public static final String CODE = "code";
    public static final String MSG = "message";
    public static final String DATA = "data";

    //成功,无message
    public static JSONObject createSuccResult() {
        return createResp(ResponseEnum.SUCCESS);
    }
    //成功,有message
    public static JSONObject createSuccResult(Object data) {
        JSONObject result = createSuccResult();
        result.put(DATA, data);
        return result;
    }
    //成功,引用某个ResponseEnum类常量来实现
    private static JSONObject createResp(ResponseEnum responseEnum) {
        JSONObject result = new JSONObject();
        result.put(CODE, responseEnum.getCode());
        result.put(MSG, responseEnum.getMessage());
        return result;
    }

    //失败:没有message
    public static JSONObject createErrorResult() {
        return createResp(ResponseEnum.UNKNOWN_ERROR);
    }
    //失败:引用ResponseEnum类常量
    public static JSONObject createErrorResult(ResponseEnum responseEnum) {
        return createResp(responseEnum);
    }
    //失败,引用某个ResponseEnum类常量,和数据
    public static JSONObject createErrorResult(ResponseEnum responseEnum, Object data) {
        JSONObject resp = createResp(responseEnum);
        resp.put(DATA, data);
        return resp;
    }

    //封装异常信息
    public static JSONObject createErrorResult(ServiceException e) {
        JSONObject result = new JSONObject();
        result.put(CODE, e.getErrCode());
        result.put(MSG, e.getErrMsg());
        return result;
    }
}

如何调用呢,以后写接口就不用建立一个jsonobject


    @ResponseBody
    @RequestMapping("/nologin/logout")
    public JSONObject logout(HttpServletRequest request) {
        try {
            HttpSession session = request.getSession(false);
            if (session != null) {
                session.invalidate();
            }
            return **WebUtils.createSuccResult()**;

        } catch (Exception e) {
            log.error("", e);
            return WebUtils.createErrorResult(ResponseEnum.FAILURE);
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章