使用Spring MVC接收分页参数
Spring MVC结合Spring Data JPA可以实现内置的分页支持。
演示用Controller:
import org.springframework.data.domain.Pageable;
@RestController
public class DemoPageable {
@GetMapping("/demo")
public String demo(Pageable pageable) {
System.out.println(pageable);
// 该pageable参数可以为Spring Data JPA中的PagingAndSortingRepository所接收,从而为数据库查询提供分页支持
return "";
}
}
为测试方便起见使用的请求URL为:
http://localhost:8080/demo?page=1&size=15&sort=myfield,DESC&sort=yourfield,ASC
此时pageable接收的参数是:
- 当前页码为1
- 每页显示条目数为15
- 按照myfield这个字段倒序排序,myfield字段相同的,再按照yourfield字段正序排序
改变默认的分页参数
如果URL未提供排序参数,Spring MVC的默认值为:
- page = 0
- size = 20
- sort = null
一些情况下我们需要改变这些参数的默认值,此时可以使用@PageableDefault注解,如下面的代码所示:
@RestController
public class DemoPageable {
@GetMapping("/demo")
public String demo(@PageableDefault(sort = "myfield", direction = Sort.Direction.DESC, page = 1, size = 15) Pageable pageable) {
System.out.println(pageable);
return "";
}
}
该例子的@PageableDefault将分页参数默认值设置为:
- 页码为1
- 一页显示内容数量为15
- 按照myfield字段倒序排序