在项目会有一些请求来规定返回值给前台,一般封装个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);
}
}