我正在尝试在我的JSP页面中实现分页.我正在使用Spring MVC和Hibernate. java代码部分没问题但我在JSP页面中实现它有困难.我正在使用twitter bootstrap.@H_404_2@
这是我到目前为止所做的事情:@H_404_2@
@H_404_2@
@H_404_2@
@RequestMapping(value = "/list",method = RequestMethod.GET)
public String getEmployees(ModelMap model) {
**//I believe I should get the page number from the JSP here but how?**
model.addAttribute("employees",this.employeeService.getEmployees(page));
return "listing";
}
@H_404_2@
public List
@H_404_2@
private static final int limitResultsPerPage = 3;
public List
以下是我应该做什么的假设,但不知道如何(如果我采取错误的方式,请纠正我):@H_404_2@
修改我的菜单中指向list.jsp的链接到list.jsp?page = 0,所以每次用户点击链接时,他都会到达第一页.@H_404_2@
当用户单击其中一个按钮时,我需要将页码传递给我的控制器,这样我就可以设法通过查询返回正确的“员工”.@H_404_2@
如您所见,First和PrevIoUs按钮被取消激活,因为我当前在第一页上.所以我的问题是,我应该如何处理这些按钮的激活/停用,以及下一个和最后一个按钮?@H_404_2@
最佳答案
至少回答你的一个问题:@H_404_2@
您可以使用RequestParam注释将页面编号和其他参数从JSP传递到控制器,如下所示:@H_404_2@
@H_404_2@
@RequestMapping(value = "/list",method = RequestMethod.GET)
public String getEmployees(@RequestParam(value = "page",required = false) Long page,ModelMap model) {
//now page is available.
model.addAttribute("employees",this.employeeService.getEmployees(page));
return "listing";
}
@H_404_2@
list/?page=1
分页是一个相当复杂的过程,但这里有一些想法.您可以在JSP页面上使用JSTL来实现逻辑.例如:@H_404_2@
@H_404_2@
我建议您在Action中对要显示的页数进行一些计算.比如说你总是想要显示十个链接.在第1页上,您将显示页面1 … 10,在第7页上,您将显示页面2 … 12,依此类推.在操作中,您可以确定要显示的起始页和结束页.@H_404_2@
@H_404_2@
int startpage = page - 5 > 0?page - 5:1;
int endpage = startpage + 10;
@H_404_2@
等等.