SpringBootWeb响应

1. 响应

1.1 介绍

在上述的方法中,我们在测试的时候,统一给页面响应了一个简单的字符串 "OK"。 其实,我们也可以直接将一个实体对象,或者一个集合直接响应回去。

比如如下这样:

A. 响应字符串 OK

@RequestMapping("/simpleParam")
public String simpleParam( String name , Integer age){
    System.out.println(name+"  :  "+age);
    return "OK";
}

B. 响应实体对象

@RequestMapping("/getUser")
public User getUser(){
    User user = new User();
    user.setName("Tom");
    user.setAge(10);
    return user;
}

C. 返回集合数据

@RequestMapping("/list")
public List<User> list(){
    User user = new User();
    user.setName("Tom");
    user.setAge(10);

    List<User> userList = new ArrayList<>();
    userList.add(user);
    return userList;
}

那在服务端,我们直接响应了一个对象 或者 集合,那最终前端获取到的数据是什么样子的呢?我们可以测试一下,通过postman发送请求,测试效果如下:

我们响应的是一个java对象 或者 集合, 怎么最终返回的确实JSON格式的数据呢 ? 其实啊,这是 @ResponseBody 注解的作用。

1.2 @ResponseBody

  • 名称:@ResponseBody
  • 类型:方法注解、类注解
  • 位置:SpringMVC控制器方法上/类上
  • 作用:将当前方法返回值直接返回,如果是 实体/集合 转换为JSON返回

而我们的案例中,并没有直接使用 @ResponseBody,原因是因为我们使用的是 @RestController注解,该注解中已经封装了@ResponseBody注解,已经包含了@ResponseBody注解的作用,我们无需要额外添加。

1.3 统一响应结果

但是呢,我们发现,我们在上述所编写的这些个Controller的方法,返回值各种各样,没有任何的规范。如果我们开发一个大型项目也是这样,那整个项目将难以维护。那在真实的项目开发中是什么样子的呢?

在真实的项目开发中,无论是增删改查的那种方法,我们都会定义一个统一的返回结果,在这个返回结果中,包含一下信息:

A. 当前请求是成功,还是失败。

B. 当前给页面的提示信息。

C . 返回的数据。

对于上述的这些数据呢,我们一般都会定义在一个实体类Result中。 代码如下:

public class Result {
    private Integer code;//响应码,1 代表成功; 0 代表失败
    private String msg;  //响应码 描述字符串
    private Object data; //返回的数据

    public Result() { }
    public Result(Integer code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    //增删改 成功响应
    public static Result success(){
        return new Result(1,"success",null);
    }
    //查询 成功响应
    public static Result success(Object data){
        return new Result(1,"success",data);
    }
    //失败响应
    public static Result error(String msg){
        return new Result(0,msg,null);
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值