郑州网站建设 天强科技,织梦培训机构网站模板,免费网站制作报价,做微信小程序的网站目录
概述
用途
使用案例
用 ResponseBody 设置返回值 概述
ResponseBody注解的作用是将方法返回的对象#xff0c;通过适当的转换器(HttpMessageConverter)转换为指定的格式之后#xff0c;写入到response对象的body区#xff0c;通常用来返回JSON数据或者是XML数据 用…目录
概述
用途
使用案例
用 ResponseBody 设置返回值 概述
ResponseBody注解的作用是将方法返回的对象通过适当的转换器(HttpMessageConverter)转换为指定的格式之后写入到response对象的body区通常用来返回JSON数据或者是XML数据 用途
本质
ResponseBody的作用其实是将java对象转为json格式的数据然后直接写入HTTP response的body中一般在异步获取数据时使用
注意
在使用此注解之后不会再走视图处理器而是直接将数据写入到输入流中他的效果等同于通过response对象输出指定格式的数据ResponseBody 是作用在方法上的ResponseBody 表示该方法的返回结果直接写入 HTTP response body中一般在异步获取数据时使用(也就是AJAX)在使用 RequestMapping 后返回值通常解析为跳转路径但是加上 ResponseBody 后返回结果不会被解析为跳转路径而是直接写入 HTTP response body 中比如异步获取 json 数据加上 ResponseBody 后会直接返回 json 数据 使用案例
登录小案例分析比如我要在登陆的时候跳转到一个“success.html”页面当你加上ResponseBody注解后代码在执行的时候它就不会给你解析成跳转路径它会给你返回success字符串
success.html Controller 运行结果 当你不加ResponseBody的时候代码在执行的时候它就会给你解析成跳转路径进行对应的跳转 运行结果 ResponseBody也是可以直接作用在类上的最典型的例子就是 RestController 这个注解(它无非是用 Controller 和 ResponseBody 标记的元注解)它就包含了 ResponseBody 这个注解在类上用RestController其内的所有方法都会默认加上ResponseBody也就是默认返回JSON格式如果某些方法不是返回JSON的就只能用Controller了这也是它们俩的区别 用 ResponseBody 设置返回值
1用HttpServletResponse返回内容
即使将返回值设置为void仍然可以通过添加HttpServletResponse作为参数直接写入响应内容 其行为本身与返回值为 String 时相同但这种写法也可以用于下载文件稍后会介绍
2指定内容类型
内容类型可以在 RequestMapping 的 Produces 属性中指定内容类型常量在 org.springframework.http.MediaType 类中定义所以使用它们来指定类型 3指定HTTP状态和响应头
如果要指定除 HTTP 状态或内容类型之外的响应标头请将返回值设置为 ResponseEntityResponseEntity 是一个具有主体、标头和状态的类类型 T 指定主体的类型 4返回JSON
返回JSON时返回值可以是任意类通过这样做Spring Boot 将使用名为 Jackson 的 JSON 处理库将其转换为 JSON 格式例如如果创建一个User类其中包含String类型的成员变量id和name并返回它们的列表则可以编写如下方法 此方法生成类似于以下内容的 JSON 数据 5下载文件
要下载文件您可以使用 HttpServletResponse如下所示 另一种选择是使用 org.springframework.core.io.Resource 作为返回值这会自动设置Content-Length这样你就可以写得更简洁