SpringMVC-13-SSM整合-表现层与前端数据传输数据协议实现
为了使前端更加方便地处理后端传来的数据,通常对返回结果数据进行统一化,可以将数据封装在一个 Result 类中,类中包含数据本体 data,操作代码 code,提示信息 message 等属性,前后端自行协商,达成一致即可
Result 类示例:
public class Result {
private Integer code;
private Object data;
private String message;
// 成员方法省略
}
操作码的值可以放在类中作为常量,提高可读性:
public class Code {
public static final Integer SAVE_OK = 20011;
public static final Integer DELETE_OK = 20021;
public static final Integer UPDATE_OK = 20031;
public static final Integer GET_OK = 20041;
public static final Integer SAVE_ERR = 20010;
public static final Integer DELETE_ERR = 20020;
public static final Integer UPDATE_ERR = 20030;
public static final Integer GET_ERR = 20040;
}
Controller 类示例:
@RestController
@RequestMapping("/books")
public class BookController {
@Autowired
private BookService bookService;
@GetMapping("/{id}")
public Result getById(@PathVariable Integer id) {
Book book = bookService.getById(id);
Integer code = (book == null) ? Code.GET_ERR : Code.GET_OK;
String message = (book == null) ? "数据查询失败,请重试!" : null;
return new Result(code, book, message);
}
@GetMapping
public Result getAll() {
List<Book> books = bookService.getAll();
Integer code = (books == null) ? Code.GET_ERR : Code.GET_OK;
String message = (books == null) ? "数据查询失败,请重试!" : null;
return new Result(code, books, message);
}
}