我使用的是Spring Boot 2,我喜欢它的开箱即用功能,但是现在我被要求将分页结果重新格式化为其他结构。我想继续在控制器中使用Pageable和Page功能。我正在寻找执行此操作的正确方法。
从控制器
@GetMapping(name = "customers", produces = MediaType.APPLICATION_JSON_VALUE)
Page<Customer> showCustomers(Pageable pageable) {
Page<Customer> page = customerRepo.findCustomers(pageable);
return page;
}
使用的仓库
public interface CustomerRepository extends JpaRepository<Customer, Long> {
}
这是默认格式:
{
"content": [
],
"pageable": {
"sort": {
"sorted": false,
"unsorted": true
},
"offset": 0,
"pageSize": 20,
"pageNumber": 0,
"unpaged": false,
"paged": true
},
"last": false,
"totalPages": 62835,
"totalElements": 1256684,
"size": 20,
"number": 0,
"numberOfElements": 20,
"sort": {
"sorted": false,
"unsorted": true
},
"first": true
}
这是我想要的格式
{
"@id": "/users?page=2&page_size=4",
"@type": "Collection",
"@links": {
"first": {
"href": "/users?page=1&page_size=4"
},
"next": {
"href": "/users?page=3&page_size=4"
},
"previous": {
"href": "/users?page=1&page_size=4"
},
"last": {
"href": "/users?page=5&page_size=4"
}
},
"items": [
Content...
],
"total_items": 20
}