Pager-taglib,支持多种风格的分页显示。实际上她是一个Jsp标签库,为在JSP上显示分页信息而设计的一套标签,通过这些标签的不同的组合,会形成多种不一样的分页页面,风格各异,她自带的DEMO就有七种左右的分页风格,包括Google的分页风格。而需要订制自已的风格的分页页面也非常简单。
分页方式有两种:
1:页面分页,适合数据量比较小的查询
2:数据库分布,适合较大数据量的查询。
下载:
官方下载:http://jsptags.com/tags/navigation/pager/index.jsp
1:在下载下来的包中找到lib目录,取出pager-taglib-2.0\WEB-INF\lib\pager-taglib.jar
2:jstl.jar
3:standard-1.1.2.jar
方案一:页面分页
页面分页实质是从Servlet或Action中调用业务方法一次性提取所有查询结果并保存后中转页面在页面上通过对pager-taglib标签这个集合进行分页处理,因此适合查询数据不大的应用。
控制层代码(这里指servlet)
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
HttpSession session = request.getSession(true);
ServletContext context = session.getServletContext();
GroupService gs = new GroupServiceImpl();
List<Group> list = gs.getGroupsByAccount(session, context);
request.setAttribute("listOfGroups", list);
context.getRequestDispatcher("/listOfGroups.jsp").forward(request, response);
}
分页标签库的使用
导入分页标签库
<%@taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
导入jstl标签库
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<pg:pager maxPageItems="8" url="ListOfGroupsServlet">
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Name</td>
<td>List of owners</td>
<td>List of members (users, groups)</td>
<td>Short name</td>
<td>Email address</td>
<td>Description</td>
</tr>
<%
List<Group> list= (List<Group>)request.getAttribute("listOfGroups");
boolean withValues = list != null && list.size()> 0;
%>
<%
for(Group g : list){%>
<pg:item>
<tr>
<td><%=g.getName() %></td>
<td><%=g.getOwners() %></td>
<td><%=g.getMembers() %></td>
<td><%=g.getShortName() %></td>
<td><%=g.getEmailAddress() %></td>
<td><%=g.getDescription()%></td>
</tr>
</pg:item>
<%
}
%>
<tr>
<td align="center" colspan="5">
<pg:index>
<pg:first><a href="${pageUrl}">First</a></pg:first>
<pg:prev><a href="${pageUrl}">Previous</a></pg:prev>
<pg:pages>
<a href="${pageUrl}">[${pageNumber}]</a>
</pg:pages>
<pg:next><a href="${pageUrl}">Next</a></pg:next>
<pg:last><a href="${pageUrl}">Last</a></pg:last>
</pg:index>
</td>
</tr>
</table>
</pg:pager>