关于如何使用pager-taglib分页

对于大多数程序员来说分页是个很头疼的问题,因为要涉及一些问题。为了简化程序员工作量使用框架来帮我们自动分页。
第一步:下载:pager-taglib包: pager-taglib
第二部:在jsp中引用pager标签<%@taglib prefix="pg" uri="/WEB-INF/lib/pager-taglib.jar" %>
第三部:jsp页面遍写
<body>
//以下是使用c标签将分页好的数据迭代出来
  <c:forEach items="${list}" var="student">
            <p>${student.sname}</p>
  </c:forEach>
  //下面是pager框架写法 
//pager是根标签所有的分页标签都在它里面 其中url是你点击页码需要请求的action相当于form表单action ///items是获取数据库中记录总数  pager正是根据这个值来进行计算页码的 export是变量意义
//maxPageItems每页最多显示几条maxIndexPages最多显示几个页码默认二者都是10
<pg:pager url="Selstudent" items="${zongsu}"  export="currentPageNumber=pageNumber" maxPageItems="2" maxIndexPages="2">
//param用于给后台传递数据参数,形式使用url参数向后台发送
                 <pg:param name="parentId" value="${parentId}"/> 
//fist是首页标签${pageUrl}是固定写法它的值形如Selstudent?pager.offset=0
表示发送一个pager.offset=0的参数给后台。用于数据库从指针为0开始查询
					<pg:first>
c:if用于判断当前页是否是第一页如果是则首页无法点击										
						<a <c:if test="${currentPageNumber!=pageNumber}"> href="${pageUrl}" </c:if>>首页</a>
					</pg:first>
//以下与首页类似
					<pg:prev>
					
						<a href="${pageUrl}">前页</a>
					</pg:prev>
					<pg:pages>
						<c:choose>
							<c:when test="${currentPageNumber eq pageNumber}">
								<font color="red">${pageNumber }</font>
							</c:when>
							<c:otherwise>	
								<a href="${pageUrl}">${pageNumber }</a>
							</c:otherwise>
						</c:choose>
					</pg:pages>
					<pg:next>
						<a href="${pageUrl}" >后页</a>
					</pg:next>
					<pg:last>
						<a <c:if test="${currentPageNumber!=pageNumber}"> href="${pageUrl}" </c:if>>尾页</a>					
					</pg:last>
					
					
</pg:pager>
                                                                                                                                                                                           
  </body>
在后台我使用springMVC框架进行业务分发
  @RequestMapping("/Selstudent")
    public ModelAndView select(HttpServletRequest request){
    	ModelAndView view=new ModelAndView();//获取模型视图对象
    	List<Student> list=new ArrayList<Student>();//获取泛型为student的list对象
    	String offer=request.getParameter("pager.offset");//获取jsp传过来的pager.offset值,由于无法定义带有点的变量所欲无法在方法参数中直接获取pager。offset值。使用原始获取方法。
    	if(offer==null){
    	 startpage=0;//用于初始化分页
    	}
    	else{
    		startpage=Integer.parseInt(offer);将分页索引赋值给start
page用于数据库查询
    	}
    	list=studentservice.select(startpage,3);//每页显示3条记录
    	view.addObject("list",list);
    	view.addObject("zongsu",studentservice.count());//将记录总数发给jsp
    	view.setViewName("select");//返回视图类似struts中方法的return。
    	return view;
    }
 
 
小结:
其实让代码重用完全可以封装一个类pagemodel将记录总数,起始记录,每页记录数封装起来发送给jsp

 
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值