【问题标题】:Implement pagination using Spring MVC and Hibernate使用 Spring MVC 和 Hibernate 实现分页
【发布时间】:2014-07-06 21:07:45
【问题描述】:

我正在尝试使用 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";
    }

当我像这样访问 URL 时:

http://localhost:8080/kids/list/?page=0

我从数据库中获得了前 6 个项目,一切正常。 但我想在 URL 中不获取参数 page 的情况下获得前 6 个项目,只需:

http://localhost:8080/kids/list/

但如果我打开网址:

http://localhost:8080/kids/list/?page=1 

然后我得到第二个 6 项。

有什么想法吗?

【问题讨论】:

    标签: spring hibernate pagination


    【解决方案1】:

    当您点击 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";
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2015-12-02
      • 1970-01-01
      • 2013-10-27
      相关资源
      最近更新 更多