目录
4.2.2、自定义的uclassMessageConverter():
4.2.4、自定义组件有可能会覆盖很多默认功能,导致一些默认的功能失效。
controller层根据页面的请求,进行数据和图片的响应。
1、响应JSON,给前端返回json数据
1.1、引入依赖
pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
该场景自动引入了json场景
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
1.2、映射方法标注@ResponseBody注解
controller层:
@Controller
public class ResponseTestController {
@ResponseBody
@GetMapping("/test/person")
public Person getPerson() {
Person person = new Person();
person.setAge(28);
person.setBirth(new Date());
person.setUserName("zhangsan");
return person;
}
}
页面响应数据:
1.3、SpringMVC支持的返回值类型
ModelAndView
Model
View
ResponseEntity
ResponseBodyEmitter
StreamingResponseBody
HttpEntity
HttpHeaders
Callable
DeferredResult
ListenableFuture
CompletionStage
WebAsyncTask
有 @ModelAttribute 注解,且为对象类型的返回值
有 @ResponseBody 注解,利用RequestResponseBodyMethodProcessor处理器进行返回
2、内容协商
根据客户端接收能力不同,返回不同媒体类型的数据。
2.1、引入xml依赖(支持返回xml格式的数据)
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
前端界面返回值:
2.2、postman分别测试返回json和xml
只需要改变请求头中Accept字段。Http协议中规定的,告诉服务器本客户端可以接收的数据类型。