引用尚学堂paper-taglib的文章:
1、拷贝pager-taglib.jar包 2、在JSP页面中使用taglib指令引入pager-taglib标签库 3、使用pager-taglib标签库进行分页处理
我的实际应用:
把相应的jar包导入到工程之后,在前台页面引入标签文件。
然后在要放入分页链接的地方插入如下代码:
前台页面:
<pg:pager items="${size}" maxIndexPages="5" url="orgnization.do" maxPageItems="3" export="currentPageNum=pageNumber">
<!--
url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数
items:总记录数,pager标签正是根据这个值来计算分页参数的
maxPageItems:每页显示的行数,默认为10
maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10
export里面的内容为:设置当前页面
-->
<pg:param name="method"/>
<!-- 在连接时要插入的变量。他自动赋值添加到url?的后面。 -->
<pg:first>
<a href="${pageUrl }">首页</a>
<!--连接地址就为${pageUrl} ,具体值会自动计算 -->
</pg:first>
<pg:prev>
<a href="${pageUrl }">上一页</a>
</pg:prev>
<pg:pages>
<!-- 页面跳转 -->
<c:if test="${currentPageNum == pageNumber}">
<font color="red">${pageNumber }</font>
</c:if>
<!-- 当当前页面和循环的页面数字相等时用红色表示 -->
<c:if test="${ currentPageNum != pageNumber}">
<a href="${pageUrl}" >${pageNumber }</a>
</c:if>
<!-- 不相等时,显示一个连接 -->
</pg:pages>
<pg:next>
<a href="${pageUrl }">下一页</a>
</pg:next>
<pg:last>
<a href="${pageUrl }">尾页</a>
</pg:last>
</pg:pager>
含分页处理的xxAction:
String off = request.getParameter("pager.offset");
int offset = 0;
if(off != null){
offset = Integer.parseInt(off);
}
int num = 10; //每页显示的数量
List list = getOrgnizationService().findAllByParentId(id,offset,num);
request.setAttribute("orgList", list);
String size = getOrgnizationService().getSizeById(id); //list的总大小
request.setAttribute("size", size);
对与分页处理的业务函数:
public List findAllById(int parId, int offset, int num) {
String partHql = null;
List list = null;
if(parId != 0){
partHql = "from Orgnization where orgnization.orgId = "+parId;
}else{
partHql = "from Orgnization where orgnization is null";
}
list = getSession().createQuery(partHql).setFirstResult(offset).setMaxResults(num).list();
// 设置list的起始位置为offset,显示大小为num。
return list;
}