分页封装实用工具类及其使用方法
作者: javaboy2012
Email:yanek@163.com
qq: 1046011462
package com.yanek.util;
import java.util.List;
public class PageBean {
/**
* @param args
*/
public static void main(String[] args) {
}
private int currentpage; // 当前页数
private int pagesize; // 每页大小
private int totalPagecount; // 总页数
private int totalRecordCount; // 总记录数
private List recordContents; // 当前页记录内容列表
public int getCurrentpage() {
return currentpage;
}
public int getPagesize() {
return pagesize;
}
public List getRecordContents() {
return recordContents;
}
public int getTotalPagecount() {
return totalPagecount;
}
public int getTotalRecordCount() {
return totalRecordCount;
}
public PageBean(int currentpage, int pagesize, int totalRecordCount, List recordContents) {
super();
this.currentpage = currentpage;
this.pagesize = pagesize;
this.totalRecordCount = totalRecordCount;
this.recordContents = recordContents;
if (totalRecordCount % pagesize == 0) {
this.totalPagecount = totalRecordCount / pagesize;
} else {
this.totalPagecount = totalRecordCount / pagesize + 1;
}
}
}
调用方法:
action里调用:
public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
TopicDAO tdao=new TopicDAOImpl();
String s_pagesize=(String)request.getParameter("pagesize");
int pagesize=20;
if (s_pagesize!=null)
{
pagesize=Integer.parseInt(s_pagesize);
}
int pagecount=1;
String s_pagecount=(String)request.getParameter("pagecount");
if (s_pagecount!=null)
{
pagecount=Integer.parseInt(s_pagecount);
}
//得到记录总数
long totalcount=tdao.getTopicTotalCount();
System.out.println("total:"+totalcount);
List topics=tdao.getTopics(pagesize,pagecount);
for (int i=0;i<topics.size();i++)
{
TopicBean tb=(TopicBean)topics.get(i);
System.out.println(tb.getTid()+"-"+tb.getTname());
}
PageBean pb=new PageBean(pagecount,pagesize, (int)totalcount,topics);
request.setAttribute("topic_pagebean", pb);
return mapping.findForward("topic_list");
}
jsp页面调用示例:
<%
PageBean pb=(PageBean)request.getAttribute("topic_pagebean");
List topics=pb.getRecordContents();
%>
<div class="cont">
<center><h2>记录列表</h2></center><br/><br/>
<div class="list">
<form name="topic" action="topic.do" method="get">
<input type="hidden" name="method" value="list" />
<input type="hidden" name="pagesize" value="<%=pb.getPagesize()%>" />
<table width="100%" border="0">
<tr class="white">
<th class="sl1" width="30%">标题</th>
<th width="30%" class="sl1">描述</th>
<th class="sl1" width="25%">ID </th>
<th width="15%"> 操作</th>
</tr>
<%
for (int i=0;i<topics.size();i++)
{
TopicBean tb=(TopicBean)topics.get(i);
%>
<%
String classname="";
if (i%2==1)
{
classname="white";
}
%>
<tr class="<%=classname %>">
<td><%=tb.getTname() %></td>
<td><%=tb.getTdesc() %></td>
<td>
<%=tb.getTid() %>
</td>
<td><a href='/topic.do?method=view&tid=<%=tb.getTid() %>'>[查看]</a></td>
</tr>
<%
}
%>
<tr>
<td colspan="6">
<p align="center">
<br/>
共<%=pb.getTotalRecordCount() %>个记录,共<%=pb.getTotalPagecount() %>页,每页<%=pb.getPagesize() %>个 ,当前第<%=pb.getCurrentpage() %>页
<%
if (pb.getCurrentpage()==1)
{
out.print("首页 上页 ");
}
else
{
%>
<a href="topic.do?method=list&pagecount=1&pagesize=<%=pb.getPagesize() %>">首页</a>
<a href="topic.do?method=list&pagecount=<%=pb.getCurrentpage()-1%>&pagesize=<%=pb.getPagesize() %>">上页</a>
<%
}
%>
<%
if (pb.getCurrentpage()==pb.getTotalPagecount())
{
out.print("下一页 尾页 ");
}
else
{
%>
<a href="topic.do?method=list&pagecount=<%=pb.getCurrentpage()+1 %>&pagesize=<%=pb.getPagesize() %>">下一页 </a>
<a href="topic.do?method=list&pagecount=<%=pb.getTotalPagecount() %>&pagesize=<%=pb.getPagesize() %>"> 尾页</a>
<%
}
%>
转到第 <input type="text" name="pagecount" value="<%=pb.getCurrentpage() %>" size="4"> 页
<input type="submit" value="GO" size="4">
</td>
</tr>
</table></form>
</div>
</div>
action配置
<action path="/topic" type="com.myweb.web.action.TopicAction" scope="request" parameter="method">
<forward name="topic_list" path="/WEB-INF/pages/test/test/topic_list.jsp"/>
</action>
访问方式: http://192.168.0.1/topic.do?method=list&pagecount=1&pagesize=10