我正在尝试使用 Spring MVC 和 Hibernate 实现分页。
这是我的 DAO 层:
private static final int LIMITITEMSPERPAGE = 6;
public List<Video> listVideosByKids(int page) {
Query query = sessionFactory.getCurrentSession().createQuery("from Video where type=1");
query.setMaxResults(LIMITITEMSPERPAGE);
query.setFirstResult(page * LIMITITEMSPERPAGE);
return (List<Video>) query.list();
}
这是我的 Controller :
@RequestMapping("/list")
public String listKids(@RequestParam(value = "page") int page, ModelMap model) {
model.addAttribute("listVideos", videoService.listVideosByKids(page));
return "/kids/list";
}
当我访问这样的 URL 时:
http://localhost:8080/kids/list/?page=0
我从数据库中获得前 6 个项目,一切正常。
但我想在没有获取参数的情况下获得前 6 个项目 页在 URL 中,只需:
http://localhost:8080/kids/list/
但是如果我打开网址:
http://localhost:8080/kids/list/?page=1
然后我得到第二个 6 项目。
有任何想法吗?
最佳答案
当您点击 http://localhost:8080/kids/list/
请求参数 页不见了。您可以使用 required 为 false 为其添加默认值。
@RequestMapping("/list")
public String listKids(@RequestParam(value = "page", defaultValue="0", required=false) int page, ModelMap model) {
model.addAttribute("listVideos", videoService.listVideosByKids(page));
return "/kids/list";
}
关于spring - 使用 Spring MVC 和 Hibernate 实现分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24595545/