景区网站建设策划,深圳网站设计 建设首选深圳市,做网站排名多少钱,做游戏排行榜的网站模板ResponseBody ResponseEntity 1、产生疑问 我们知道#xff0c;如果在 Controller 的某个方法上加上 ResponseBody 注解#xff0c;那么你就能拿到 json 数据。 如果你只是知道这么用#xff0c;那么你应该知道 ResponseBody 的具体作用#xff1a; 其将方法的返回值通过… ResponseBody ResponseEntity 1、产生疑问 我们知道如果在 Controller 的某个方法上加上 ResponseBody 注解那么你就能拿到 json 数据。 如果你只是知道这么用那么你应该知道 ResponseBody 的具体作用 其将方法的返回值通过适当的转换器转换为指定的格式之后写入到 response 对象的 body 区通常用来给客户端返回 JSON 数据或者是 XML 数据当方法上面没有写 ResponseBody 时底层会将方法的返回值封装为 ModelAndView 对象需要注意的是在使用此注解之后不会再走试图处理器而是直接将数据写入到输入流中他的效果等同于通过 response 对象输出指定格式的数据。 来看看 ResponseEntity 首先我们清楚RestController Controller ResponseBody 但是这个 ResponseEntity 是个什么鬼? 2、尝试理解 还记得 http 请求包含什么吗 请求头、请求行、请求体响应头、响应体、响应行(状态码) 而 ResponseBody 只是作为一个响应体。 也就是在典型的 spring mvc 应用中请求点通常返回 html 页面。有时我们仅需要实际数据如使用ajax请求。这时我们能通过 ResponseBody 注解标记请求处理方法审批人能够处理方法结果值作为http响应体。 说到响应体就得扯到状态码了毕竟光有响应体不行呀我们经常遇到的那个 404 就是个状态码 放在注解中就是 ResponseStatus。 那么这些跟 ResponseEntity 有什么关系 ResponseEntity 太强大ResponseBody 、 ResponseStatus 让使用更加便捷 看一下 ResponseEntity.class ResponseEntity 继承了 HttpEntity是 HttpEntity 的子类且可以添加 HttpStatus 状态码被用于 RestTemplate(后面文章单独讲解) 和 Controller 层方法。 通过代码继续分析 GetMapping(list)
public ResponseEntityListCategory queryCategoryListByPid(RequestParam(pid)Long pid){return ResponseEntity.ok( mCategoryService.queryCategoryListByPid(pid) );
} ResponseEntity T 泛型T 表示要设置的返回的 响应体而 ResponseEntity.ok() 表示设置的状态码 200而 ResponseEntity.ok() 其实是一种快捷的写法如果不这样写的话 GetMapping(list)public ResponseEntityListCategory queryCategoryListByPid(RequestParam(pid)Long pid){//return ResponseEntity.status(200).body(mCategoryService.queryCategoryListByPid(pid));//或者return ResponseEntity.status(HttpStatus.OK).body(mCategoryService.queryCategoryListByPid(pid));} 3、总结 尽管 ResponseEntity 非常强大但不应该过度使用。 在一些简单情况下还有其他方法能满足我们的需求使代码更整洁。 ResponseBody ResponseStatus posted 2018-12-09 19:48 niceyoo 阅读(...) 评论(...) 编辑 收藏