0
点赞
收藏
分享

微信扫一扫

封装web返回对象

Sophia的玲珑阁 2022-03-11 阅读 43
/**
 * 封装web返回对象
 * 统一数据返回格式:业务状态码、业务消息
 * 虽然SpringMVC的Controller可以自动把对象转换成JSON返回给客户端,但是我们需要制定一个统一的标准,
 * 保证所有Controller返回的数据格式一致。最简便的办法就是定义封装类,来统一封装返回给客户端的数据。
*/
public class R extends HashMap<String,Object> {
    public R(){
        put("code", HttpStatus.SC_OK);
        put("msg","success");
    }
    //实现链式调用put方法
    public R put(String key,Object value){
        super.put(key,value);
        return this;
    }
    //静态工厂方法
    //ok
    public static R ok(){
        return new R();
    }
    public static R ok(String msg){
        R r=new R();
        //成功状态码是200,所以只需要覆盖msg信息
        r.put("msg",msg);
        return r;
    }
    public static R ok(Map<String,Object> map){
        R r=new R();
        r.putAll(map);
        return r;
    }

    //error
    public static R error(int code,String msg){
        R r=new R();
        //覆盖code和msg
        r.put("code",code);
        r.put("msg",msg);
        return r;
    }
    public static R error(String msg){
        //code:500
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,msg);
    }
    public static R error(){
        //code:500
        return error(HttpStatus.SC_INTERNAL_SERVER_ERROR,"未知错误,请联系管理员");
    }
}

举报

相关推荐

0 条评论