Reputation: 6563
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
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