我尝试使用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();
}
这是我的控制器:
@RequestMapping("/list")
public String listKids(@RequestParam(value = "page") int page, ModelMap model) {
model.addAttribute("listVideos", videoService.listVideosByKids(page));
return "/kids/list";
}
当我转到这样的网址时:
http://localhost:8080/kids/list/?page=0
我从数据库中获得前6项,一切正常。 但是我希望获得前6项而不在网址中获取参数页面,只需:
http://localhost:8080/kids/list/
但如果我打开网址:
http://localhost:8080/kids/list/?page=1
然后我得到第二个6项。
有什么想法吗?
答案 0 :(得分:2)
当您点击http://localhost:8080/kids/list/
请求时,页面会丢失。您可以使用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";
}