您的位置:首页 > 其它

SSH的分页实现

2009-12-15 13:45 183 查看
1: 我们需要下载page标签的jar包; pager-taglib.jar
[样例代码]: http://jsptags.com/tags/navigation/pager/pager-taglib-2.0.war
解压war文件 在{..}/WEB-INF/lib/pager-taglib.jar

2:把这个jar 拷贝到你的web工程的lib中;

3: 3-1 该标签需要我们提供1个最关键的参数 ---》 总数据量 select count(*)的值
3-2 每页显示的记录数
3-3 页码的个数
3-4 你的这个应用的url
3-5 如果你的这个应用有参数的场合 你需要设置url的参数

4:默认的场合查询数据库的开始索引 的参数名称为pager.offset

5:
后台的处理

后台的action中 在request.getParameter("pager.offset"); 里得到查询数据库的开始索引
并计算查询的总数据量并将计算的结果保存在requset.setAttribute('totalpage');
把相关的查询结果设置到requset.setAttribute('xxlist');

6: 前台处理

在相应jsp页面上添加 <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>

取得count(*)的值
<%
Integer totalPage = (Integer)request.getAttribute("totalPage");
%>
<pg:pager
items="<%=totalPage%>" ----》count(*)值
index="center" (忽略)
maxPageItems="5" 每页显示的多少行数据 这个参数和我们hibernate中 maxResult 是一致的
maxIndexPages="10" 显示的最大页码
isOffset="<%= true %>" (忽略)
export="offset,currentPageNumber=pageNumber" (忽略)
scope="request" (忽略)
url="stdM.do"> 你的具体业务的url(忽略)

<pg:param name="method" value="list"/> url 固定的参数设置可以有多个

数据的迭代

<c:forEach items="${stdList}" var="std">
<tr>
<td>${std.id}</td>
<td>${std.name}</td>
<td>${std.classes.name}</td>
<tr>
</c:forEach>

如何显示页码的程序

<pg:index> 页码的标签
<pg:prev export="pageUrl" ifnull="<%= true %>"> 前一页的标签
<% if (pageUrl != null) { %> 第一页的时候没有上一页的判断
<a href="<%= pageUrl %>">[上一页]</a>
<% } %>
</pg:prev>

<pg:pages>
<% if (pageNumber == currentPageNumber) { %> 判断那个是当前页 当前页没有连接并变颜色
<font color=#A90A08><%= pageNumber %></font>
<% } else { %>
<a href="<%= pageUrl %>"><%= pageNumber %></a>
<% } %>
</pg:pages>

<pg:next export="pageUrl" ifnull="<%= true %>"> 下一页的标签
<% if (pageUrl != null) { %> 最后一页的时候没有下一页的判断
<a href="<%= pageUrl %>">[下一页]</a></td>
<% }%>
</pg:next>
</pg:index>
</pg:pager> 收尾
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: