系列文章目录
第一章 MVC模式
第二章 让程序run起来
第三章 @Controller、@RequestMapping 注解和获取请求参数
第四章 域对象、视图、转发和重定向
第五章 第五章 实现RESTful
第六章 MVC类型转换器、格式化器
第七章 JSON数据交互
第八章 拦截器实现权限验证、异常处理
第九章 文件上传、下载
第十章 使用logback+Slf4j打印日志
第十一章 单体架构任务调度
文章目录
前言
Spring MVC 为我们提供了两种 JSON 格式转换相关的注解
- @RequestBody 配上 @ResponseBody
- @RestController
1、封装返回值对象
1.1、创建common包
1.2、创建返回类:ResutlDto
/***
* @title ResutlDto
* @desctption 返回对象
* @author kelvin
* @create 2023/7/1 15:17
**/
@Data
@AllArgsConstructor
public class ResutlDto {
private int code;
private String message;
private Object data;
}
1.3、创建返回类辅助类:ResutlTools
/***
* @title ResutlDto
* @desctption 返回类辅助类
* @author kelvin
* @create 2023/7/1 15:17
**/
@Data
@AllArgsConstructor
public class ResutlTools {
public static ResutlDto buildSuccess(Object data) {
return new ResutlDto(200 , "success" , data);
}
public static ResutlDto buildSuccess(String message , Object data) {
return new ResutlDto(200 , message , data);
}
public static ResutlDto buildFail(int code , String message , Object data) {
return new ResutlDto(code , message , data);
}
public static ResutlDto buildFail(int code) {
return new ResutlDto(code , "系统异常" , null);
}
}
2、JSON 转换注解
2.1、@RequestBody 和 @ResponseBody
Spring MVC 为我们提供了两个十分重要的与 JSON 格式转换相关的注解,它们分别是 @RequestBody 和 @ResponseBody。
注解 | 位置 | 说明 |
---|---|---|
@RequestBody | 方法的形参上该注解 | 用于将请求体中的数据绑定到控制器方法的形参上。 |
@ResponseBody | 方法上该注解 | 用于将控制器方法的返回值,直接作为响应报文的响应体响应到浏览器上 |
@Slf4j
@Controller
@RequestMapping("/user")
public class UserController {
@GetMapping("/login")
@ResponseBody
public ResutlDto login(User user) throws IOException {
log.info("name:{} " , user.getName());
log.info(" 登录成功 !");
return ResutlTools.buildSuccess("登录成功");
}
}
结果(输出的JSON格式的数据):
2.2、@RestController
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/login")
public ResutlDto login(User user) throws IOException {
log.info("name:{} " , user.getName());
log.info(" 登录成功 !");
return ResutlTools.buildSuccess("登录成功");
}
}
结果(输出的JSON格式的数据):