使用Spring MVC和Hibernate实现分页

时间:2014-07-06 11:55:35

标签: spring hibernate pagination

我尝试使用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项。

有什么想法吗?

1 个答案:

答案 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";
    }