user3127896
user3127896

Reputation: 6563

Implement pagination using Spring MVC and Hibernate

I'm trying to implement pagination using Spring MVC and Hibernate.

Here is my DAO layer:

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();

}

Here is my controller:

@RequestMapping("/list")
    public String listKids(@RequestParam(value = "page") int page, ModelMap model) {
        model.addAttribute("listVideos", videoService.listVideosByKids(page));
        return "/kids/list";
    }

When i go to URL like this:

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

I get first 6 items from database and everything works fine. But i would like to get first 6 items without get param page in URL, just:

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

But if i'll open url:

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

then i get second 6 items.

Any ideas?

Upvotes: 4

Views: 2645

Answers (1)

Ramesh Kotha
Ramesh Kotha

Reputation: 8322

When you hit http://localhost:8080/kids/list/ request param page is missing. You can add default value to it with required to 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";
    }

Upvotes: 2

Related Questions