HttpMessageConverter
HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文
HttpMessageConverter提供了两个注解和两个类型:@RequestBody,@ResponseBody,
RequestEntity,
ResponseEntity
1、@RequestBody
@RequestBody可以获取请求体,需要在控制器方法设置一个形参,使用@RequestBody进行标识,当
前请求的请求体就会为当前注解所标识的形参赋值
控制层
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String requestBody){
System.out.println(requestBody);
return "target";
}
前端
<form th:action="@{/testRequestBody}" method="post">
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password"><br>
<input type="submit" value="添加"><br>
</form>
2、RequestEntity
@RequestMapping("/testrequestEntity")
public String testrequestEntity(RequestEntity<String> requestEntity){
//表示整个请求报文信息
System.out.println("请求头信息"+requestEntity.getHeaders());
// 获取报文请求体
System.out.println("请求体信息:"+requestEntity.getBody());
return "target";
}
3、 @ResponseBody
@ResponseBody用于标识一个控制器方法,可以将该方法的返回值直接作为响应报文的响应体响应到浏览器
@RequestMapping("/testResponseBody")
@ResponseBody //用来标识当前控制器方法
public String testResponseBody(){
//设置了ResponseBody注解后当前值就不是视图昵称而是响应报文响应体
return "target";
}