1. 简介
本文主要给大家介绍使用SpringMVC的后端服务如何通过配置来支持多种返回值类型(xml,json,html,excel)
这里的代码使用的是springboot,下载地址:https://github.com/xiagn825/springboot-todolist/tree/springboot-ContentNegotiation
2. 基础概念
2.1 HttpHeader中Content-Type和Accept设置的区别
Accept:接口要返回给客户端的数据格式
curl --header 'Accept:application/json' http://localhost:8080/todo
Content-Type:客户端发送给服务器端的数据格式
curl -X PUT --header 'Content-Type:application/json' -d '{"title":"周末日程","content":"睡觉"}' http://localhost:8080/todo
2.2 SpringMVC生成输出的两种方式
1) 当服务端使用Restful的方式,只为客户端的ajax或其他服务端请求提供数据时,通常会使用@ResponseBody来标识你的返回,这时候Spring使用HttpMessageConverter来把返回的对象格式化成所需的格式。
2) 当你需要提供表现层(比如:HTML),这时候SpringMVC使用ViewResolver来将处理你的返回。
有时候你的应用程序这两者都要提供
2.3 SpringMVC输出格式判定
很多时候为了支持多个系统或多个终端,你需要让相同的数据已不同的表现