我们现在在做一个分布式检索的搜索引擎,现在做到显示结果的地方了,可是分页问题一直解决不掉,有一个在网上找到的代码,看不懂,也不敢用。。高手们指点一下。
<%
List list = (List) session.getAttribute("list");
int pageSize = 5;//每页显示的总条数
int totalPage = 0;//页面总数
int currentPage = 1;//当前页面 编号
int totalCount = 0;//资源总数
int record = 0;//当前的第几条记录
// String account= session.getAttribute("size").toString();
if (session.getAttribute("pagesize") != null) {//自己定义每页显示条数,如果为空,则为默认值为:10。
String account = session.getAttribute("pagesize").toString();
pageSize = Integer.parseInt(account);
}
String getCurrentPage = request.getParameter("currentPage");//这个地方得到的CurrentPage时通过那里的表单传的这个值啊。。。一直搞不明白
if (getCurrentPage != null || "".equals(getCurrentPage)) {
currentPage = Integer.parseInt(getCurrentPage);
}
totalCount = list.size();//得到总的资源数
totalPage = (totalCount % pageSize == 0) ? (totalCount / pageSize)
: (totalCount / pageSize + 1);//得到总的分页数
if (currentPage > totalPage) {
currentPage = totalPage;
} else if (currentPage < 1) {
currentPage = 1;
}
//从这一下都看不太懂了。。高手帮忙解释一下
record = (currentPage - 1) * pageSize;
for (int i = record, counts = 0; i < record + pageSize
&& i < list.size(); i++) {
XmlBean xml = (XmlBean) list.get(i);
String url = xml.getUrl();
counts++;
int pivot = url.lastIndexOf("/");
String urlReal = url.substring(0, pivot + 1)
+ java.net.URLEncoder.encode(url.substring(pivot + 1),
"utf-8");
%>
<%
}
%>
<%
if (currentPage != 1) {
%>
<a href="result.jsp?currentPage=1 %>">首页</a>
<%
}
%>
<%
if (currentPage > 2) {
%>
<a href="result.jsp?currentPage=<%=(currentPage - 1)%>">上页</a>
<%
}
%>
<%
for (int i = currentPage; i < (currentPage + 10) && i <= totalPage; i++) {
if (i == currentPage) {
%>
<%=i%>
<%
} else {
%>
<a href="result.jsp?currentPage=<%=i%>"><%=i%></a>
<%
}
}
%>
<%
if (currentPage < totalPage) {
%>
<a href="result.jsp?currentPage=<%=(currentPage + 1)%>">下一页</a>
<%
}
%>
<%
if (currentPage == totalPage) {
%>
<a href="result.jsp?currentPage=<%=totalPage%>">末页</a>
<%
}
%>
谁有比较好的点子或代码也可贴上。。。谢谢了。。尽量详细一点
------解决方案--------------------------------------------------------
String getCurrentPage = request.getParameter("currentPage");//这个地方得到的CurrentPage时通过那里的表单传的这个值啊。。。一直搞不明白
就是这样传值呀:result.jsp?currentPage=*****
record = (currentPage - 1) * pageSize;//record是从开始到上一页的记录总数
for (int i = record, counts = 0; i < record + pageSize
&& i < list.size(); i++) {//循环显示当前页的记录