在jsp页面如何对进行所查询出的结果再分页?
刚加载到页面是分页显示出数据,当点击查询按钮后,对所查询出来的结果也能进行分页显示!诸位大虾,能否指点下?感激不尽了。。。。。
[解决办法]
1071782050
[解决办法]
<%
int pagesize = 8; //每页显示条数
int recordCount = list.size();//记录总数
int pageCount = recordCount / pagesize;//总页数
if(recordCount % pagesize>0){
pageCount++;
}
String pagestr = request.getParameter("page");
int currentPage =1;//当前页数
if(pagestr !=null){
currentPage = Integer.parseInt(pagestr);
currentPage = (currentPage < 1) ? 1 : currentPage;
currentPage = (currentPage > pageCount) ? pageCount : currentPage;
}
int formIndex = (currentPage-1)*pagesize;//取结果集当中需要显示的开始索引
int toIndex = currentPage * pagesize;//取结果集当中需要显示的结束索引,不包括结束索引
toIndex = (toIndex > recordCount) ? recordCount : toIndex;
%>
<%
for(int i=formIndex ; i<toIndex;i++){
User user2 = (User)list.get(i);
%>
<tr>
<td>
<div class="article">
<h3><a href="BlogReturn.action?id=<%=user2.getId()%>" ><%=user2.getTitle() %></a></h3>
<p class="author">xxxxxx @ <%=user2.getTimeda() %></p>
<p class="content">
<%=user2.getComment() %>
</p>
<p class="show">浏览[1051] | 评论[5]</p>
</div>
</td>
</tr>
<%
}
%>
<tr align="right">
<td>
记录总数 <%=recordCount %>条 每页显示 <%=pagesize %> 条 当前页/总页数 <%=currentPage %>/<%=pageCount %>
<a href="Blog.action?page=1">首页</a>
<a href="Blog.action?page=<%=currentPage-1 %>">上页</a>
<a href="Blog.action?page=<%=currentPage+1 %>">下页</a>
<a href="Blog.action?page=<%=pageCount %>">末页</a>
</td>
</tr>
</table>
=========================================================================================
分页首先的见这么一个类
代码如:
package com.page.util;
public class PageUtil {
private int pagesize;//每页显示条数
private int recordcount;//记录总数
private int currenpage;//当前页
public PageUtil(int pagesize,int recordcount,int currenpage) {
this.pagesize = pagesize;
this.recordcount = recordcount;
setCurrenpage(currenpage);
}
public PageUtil(int pagesize,int recordcount) {
//this.pagesize = pagesize;
//this.recordcount = recordcount;
//setCurrenpage(1);
this(pagesize,recordcount,1);
}
public int getRecordcount() {
return recordcount;
}
public int getPagesize() {
return pagesize;
}
public int getCurrenpage() {
return currenpage;
}
/**
*
* 获取当前页的下一页
* @return
*/
public int getNextpage(){
int nextpage = currenpage + 1;
if(nextpage > getPageCount())
return getPageCount();
return nextpage;
}
/**
*
* 获取当前页的上一页
* @return
*/
public int getToppage(){
int toppage = currenpage - 1;
if(toppage < 1)
toppage = 1;
return toppage;
}
/**
*
* 设置当前页面
* @param currenpage
*/
public void setCurrenpage(int currenpage) {
currenpage = (currenpage < 1) ? 1 : currenpage;
currenpage = (currenpage > getPageCount()) ? getPageCount() : currenpage;
this.currenpage = currenpage;
}
/**
*
* 获取总页数
* @return
*/
public int getPageCount(){
//共多少页
int pageCount = recordcount / pagesize;
if(recordcount % pagesize >0)
pageCount++;
return pageCount;
}
/**
*
* 显示结果的起始索引,索引从0开始,包括起始索引
* @return
*/
public int getFromIndex(){
int formIndex = (currenpage-1)*pagesize;//取结果集当中需要显示的开始索引
formIndex = (formIndex < 0 ) ? 0 : formIndex;
return formIndex;
}
/**
*
* 显示结果的结果索引,索引从0开始,不包括结果索引
* @return
*/
public int getToindex(){
int toIndex = currenpage * pagesize;//取结果集当中需要显示的结束索引,不包括结束索引
toIndex = (toIndex > recordcount) ? recordcount : toIndex;
return toIndex;
}
}
首先action中传过来的是一个list
jsp调用方法为
<table>
<%
int pagesize = 8; //每页显示条数
int recordcount = list.size();//记录总数
String pagestr = request.getParameter("page");
int currentPage =1;//当前页数
if(pagestr !=null){
currentPage = Integer.parseInt(pagestr);
}
PageUtil pageUtil = new PageUtil(pagesize,recordcount,currentPage);
%>
<%
for(int i=pageUtil.getFromIndex() ; i<pageUtil.getToindex();i++){
User user2 = (User)list.get(i);
%>
<tr>
<td>
<div class="article">
<h3><a href="BlogReturn.action?user.id=<%=user2.getId()%>" ><%=user2.getTitle() %></a></h3>
<p class="author"> @ <%=user2.getTimeda() %></p>
<p class="content">
<%
String string = user2.getComment();
int length=100;
if(string.length()<100){
length=string.length();
}
String newString = string.substring(0,length);
out.print(newString+"......");
%>
</p>
<p class="show">浏览[1051] | 评论[5]</p>
</div>
</td>
</tr>
<%
}
%>
<tr align="right">
<td>
记录总数 <%=recordcount %>条 每页显示 <%=pagesize %> 条 当前页/总页数 <%=pageUtil.getCurrenpage() %>/<%=pageUtil.getPageCount() %>
<a href="Blog.action?page=1">首页</a>
<a href="Blog.action?page=<%=pageUtil.getToppage() %>">上页</a>
<a href="Blog.action?page=<%=pageUtil.getNextpage() %>">下页</a>
<a href="Blog.action?page=<%=pageUtil.getPageCount() %>">末页</a>
转到<input type="text" size="2" id="newpage"/>页<input type="button" value="GO" onclick="gopage()"/>
<script type="text/javascript">
function gopage(){
var newpage= document.getElementById("newpage").value;
var reg = /\d+$/;
if(!newpage.match(reg)){
alert('格式不合法');
document.getElementById("newpage").focus();
}else{
window.location.href="Blog.action?page="+newpage;
}
}
</script>
</td>
</tr>
</table>