前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过SpringMVC框架响应JSON数据

通过SpringMVC框架响应JSON数据

作者头像
海拥
发布2021-08-23 15:33:46
1.2K0
发布2021-08-23 15:33:46
举报
文章被收录于专栏:全栈技术全栈技术

1. 通过SpringMVC框架响应JSON数据

在SpringMVC框架(含SpringBoot框架)中,当处理请求的方法之前添加了@ResponseBody后,或在控制器类之前使用的是@RestController,处理请求的方法的返回值将作为响应到客户端的数据。

当服务器向客户端响应数据时,SpringMVC框架会使用“转换器”(Converter)将方法的返回值进行转换,及处理响应时的响应头(Response Headers)等内容,针对返回值类型不同,SpringMVC框架还会自动使用不同的转换器。

当响应数据的类型(处理请求的方法的返回值类型)是String时,会自动使用StringHttpMessageConverter转换器,该转换器就会自动将返回的字符串作为数据响应到客户端,并且,还会设置响应头,默认情况下,在响应头中会设置Content-Type属性,其值是text/html; charset=ISO-8859-1,所以,在SpringMVC框架(不含SpringBoot框架)中,默认情况下,响应的String是不支持中文的!

当响应数据的类型是SpringMVC框架默认并不识别的类型时,且当前开发环境添加了jackson-databind依赖,SpringMVC框架会自动使用jackson-databind中的转换器,而jackson-databind中的转换器的工作方式就是将响应结果组织成JSON格式的数据,并且,将响应头中的Content-Type设置成了application/json; charset=UTF-8

在项目中只需要确保添加了jackson-databind依赖即可,并不需要进行额外的配置,也不需要显式的使用到该框架中的某个类! 如果是使用XML进行相关配置的SpringMVC项目,需要在Spring的配置文件中开启注解驱动,即在配置文件中添加: <annotation-driven />

总的来说,如果需要SpringMVC框架能够响应JSON格式的数据,需要:

  • 使用@RestController@ResponseBody注解;
  • 在项目中添加jackson-databind依赖;
  • 自定义处理请求的方法的返回值类型(只要是自定义的类型,就一定是SpringMVC框架默认不识别的类型)

当然,某个控制器类中,如果已经使用了@RestController注解,会表示“当前控制器类中处理的所有请求都将响应数据”,就不会执行转发或重定向的操作了,如果一定要执行转发或重定向,可以:

  • 不使用@RestController注解,而是在每个需要响应数据的方法之前逐一添加@ResponseBody注解;
  • 在使用@RestController的情况下,将需要转发或重定向的方法的返回值类型声明为ModelAndView类型。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 通过SpringMVC框架响应JSON数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档