面试

@RequestBody, @ResponseBody 注解理解

2019-08-18  本文已影响0人  希希里之海

@RequestBody, @ResponseBody 注解理解

自己以前没怎么留意过,来实习后公司采用前后端分离的开发方式,前后端拿到的注释都是 json 格式的,这时候 @RequestBody, @ResponseBody 这两个注解就非常好用,下面详细介绍用法:

@RequestBody

1. 作用:
2. 使用时机:
GET、POST方式提交时, 根据 request header Content-Type 的值来判断:
PUT 方式提交时, 根据request header Content-Type的值来判断:
3. 举个例子:

也就是说,如果是 json 格式的数据,我们要传入的参数是一个对象,那就必须使用 @RequestBody

@RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
@ResponseBody
public JSONObject class Test(@RequestBody Test test) {
    String name = test.getName();
    // 将 name 回显
    Map<String, Object> map = new HashMap<>();
    map.put("name", name);
    JSONObject obj = JSONObject.fromObject(map);
    return obj;
}

@ResponseBody

1. 作用:

该注解用于将 Controller 的方法返回的对象,通过适当的 HttpMessageConverter 转换为指定格式后,写入到 Response 对象的body 数据区。

2. 使用时机:

返回的数据不是 html 标签的页面,而是其他某种格式的数据时(如 json、xml 等)使用。

3. 举个例子:
@RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
@ResponseBody
public JSONObject class Test() {
    JSONObject obj = new JSONObject;
    obj.put("test", 1);
    // 将 obj 回显
    return obj;
}

参考:

https://blog.csdn.net/walkerJong/article/details/7520896

完。

上一篇 下一篇

猜你喜欢

热点阅读