定义返回模板

原创 2018年04月15日 15:17:55
好用请点赞收藏一波!

转发请带上作者名@LLLua和原文地址,谢谢!


public enum ResponseCode {

    SUCCESS(0,"SUCCESS"),
    ERROR(1,"ERROR"),

    private final int code;
    private final String descibe;


    ResponseCode(int code,String describe){
        this.code = code;
        this.describe = describe;
    }

    public int getCode(){
        return code;
    }
    public String getDescibe(){
        return describe;
    }

}

返回给前端的通用响应对象,按照需求改就是了

@JsonSerialize(include =  JsonSerialize.Inclusion.NON_NULL)
//保证序列化json的时候,如果是null的对象,key也会消失
public class ServerResponse<T> implements Serializable {

    private int status;
    private String msg;
    private T data;

    private ServerResponse(int status){
        this.status = status;
    }
    private ServerResponse(int status,T data){
        this.status = status;
        this.data = data;
    }

    private ServerResponse(int status,String msg,T data){
        this.status = status;
        this.msg = msg;
        this.data = data;
    }

    private ServerResponse(int status,String msg){
        this.status = status;
        this.msg = msg;
    }

    @JsonIgnore
    //使之不在json序列化结果当中
    public boolean isSuccess(){
        return this.status == ResponseCode.SUCCESS.getCode();
    }

    public int getStatus(){
        return status;
    }
    public T getData(){
        return data;
    }
    public String getMsg(){
        return msg;
    }


    public static <T> ServerResponse<T> createBySuccess(){
        return new ServerResponse<T>(ResponseCode.SUCCESS.getCode());
    }

    public static <T> ServerResponse<T> createBySuccessMessage(String msg){
        return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg);
    }

    public static <T> ServerResponse<T> createBySuccess(T data){
        return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),data);
    }

    public static <T> ServerResponse<T> createBySuccess(String msg,T data){
        return new ServerResponse<T>(ResponseCode.SUCCESS.getCode(),msg,data);
    }


    public static <T> ServerResponse<T> createByError(){
        return new ServerResponse<T>(ResponseCode.ERROR.getCode(),ResponseCode.ERROR.getDescibe());
    }


    public static <T> ServerResponse<T> createByErrorMessage(String errorMessage){
        return new ServerResponse<T>(ResponseCode.ERROR.getCode(),errorMessage);
    }

    public static <T> ServerResponse<T> createByErrorCodeMessage(int errorCode,String errorMessage){
        return new ServerResponse<T>(errorCode,errorMessage);
    }

然后在ctroller层,返回的时候封装对应的vo就行了

@RequestMapping("list.do")
@ResponseBody
public ServerResponse<CartVo> list(HttpServletRequest httpServletRequest){
    ...
    return iCartService.list(user.getId());
}

java 中 return 语句总结

return 在Java中作用         根据《Java编程思想:第四版》4.5节中介绍:return语句作为一个无条件的分支,无需判断条件即可发生。return语句主要有两个用途:一方面用来...
  • u010642004
  • u010642004
  • 2017-07-09 18:12:21
  • 167

java中返回值return的使用

我们知道,如果一个方法有返回值时,必须在方法的最后必须用return返回一个值,但是当一个方法里出现像switch(){case:...},if(){}else if(){}else,try{}cat...
  • qq_35866706
  • qq_35866706
  • 2016-09-21 23:05:07
  • 84

C++ - 函数模板(function template)返回值

函数模板(function template)返回值 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17003679 函数...
  • u012515223
  • u012515223
  • 2013-11-28 12:05:11
  • 7377

函数模板和模板函数(引用)

函数模板和模板函数(引用) 1.函数模板的声明和模板函数的生成   1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函...
  • jfkidear
  • jfkidear
  • 2015-02-02 14:07:18
  • 1095

接口数据返回---标准格式

在项目开发中,初期搭建框架时,定好通用的接口数据返回格式,定义好全局的状态码,是非常有必要的。一个项目,甚至整个公司,遵循同一套接口返回格式规范,这样可以极大的提高进度,降低沟通成本。...
  • weixin_39800144
  • weixin_39800144
  • 2017-11-11 14:15:57
  • 3105

Java中return用法.

Java中的return语句总是和方法有密切关系,return语句总是用在方法中,有两个作用,一个是返回方法指定类型的值(这个值总是确定的),一个是结束方法的执行(仅仅一个return语句)。   ...
  • pupilxiaoming
  • pupilxiaoming
  • 2017-01-24 18:05:52
  • 86

spring boot 默认模板返回方式

spring boot 默认模板返回方式刚接触spring boot 时对其模板返回方式不太明白,熟悉了mvc模式的ModelAndView(“模板路径”)形式的跳转到模板,但就是无法实现。查了很多资...
  • github_34214421
  • github_34214421
  • 2017-02-14 13:25:48
  • 1133

C++将模板的声明和定义放置在同一个头文件里

1. 一个类: 头文件用于保存类的声明;定义文件保存类的实现。 2. 分离编译模式: 允许在一个编译单元(.cpp文件)中定义函数、类型、类对象等,然后在另一个编译单元中引用它们。编译器...
  • caoshangpa
  • caoshangpa
  • 2016-11-29 09:53:31
  • 644

Response JSON数据返回(备忘)

简述: 在servlet填充Response的时候,做JSON格式的数据转换 使用的类是net.sf.json.JSONObject,传入response对象和返回的显示类,修改response,返回...
  • anialy
  • anialy
  • 2013-03-12 20:49:15
  • 97236

c++模板函数在返回值时使用类型型参

只有在最右边的型参的显示模板型参才可以忽略,规则和默认参数一样。 #include using namespace std;template t1 test(t2 a,t3 b){t1 temp;re...
  • rj03hou
  • rj03hou
  • 2009-10-19 01:25:00
  • 1558
收藏助手
不良信息举报
您举报文章:定义返回模板
举报原因:
原因补充:

(最多只允许输入30个字)