求教jsp分页显示的问题,如何循环并分页取得参数?

Page page = PageUtil.createPage(3, esql.findAllCount(), currentPage);//创建页面为:每页显示3个、取得总显示数、当前页。
List<Employee> employees = esql.findEmployees(page);//取得员工的集合类

员工属性有userName、employeeNo、roleId
据此,如何分页显示员工的信息?

这个是一个可用的分页代码,如何调用就不说了吧,但是在用之前要先指明ResultSet的值

import java.sql.ResultSet;
public class rsFenYe {
ResultSet rs=null; //要分页处理的记录数
int currentPage=1; //当前页码
int pageSize=10; //每页记录的条数,默认为10
/**
* 得到分页字串,并把记录指针移到当前页的第一条记录的前面的位置
* 输入:返回的JSP页面,refName 数组为超链接中继 currentPage 之后的参数名,refValue为对应值
* 输出:字符串“共2页,当前第1页 下一页 末页”
*/
public String earn_fenye_string(String returnJSP){
String returnString=new String("");
if(rs==null){
return returnString;
}
int pageCount=0; //总页数
int rowCount=0; //rs的总记录条数
if(pageSize<=0){ //每页记录条数不正确
return returnString;
}

try {
//------得到记录总条数--------
rs.last();
rowCount=rs.getRow();
rs.beforeFirst();

//------记录指针移位----------
int RecordPosition=(currentPage-1)*pageSize;
if(RecordPosition==0){
rs.beforeFirst();
}else{
rs.absolute(RecordPosition);
}
}catch(Exception e){
System.out.println(e);
return returnString;
}

//-------得到总页数-----
if(rowCount%pageSize==0){
pageCount=rowCount/pageSize;
}else{
pageCount=rowCount/pageSize+1;
}

//-------得到返回字符串--------
returnString="共"+pageCount+"页,当前第"+currentPage+"页  ";
if(currentPage!=1 && pageCount!=0){ //不是首页且总页数不为0
returnString=returnString+"<a href='"+returnJSP+"?currentPage=1";
returnString=returnString+"'>首页</a> ";

returnString=returnString+"<a href='"+returnJSP+"?currentPage="+(currentPage-1);
returnString=returnString+"'>上一页</a> ";
}

if(currentPage!=pageCount&&pageCount!=0){ //不是末页且总页数不等于0
returnString=returnString+"<a href='"+returnJSP+"?currentPage="+(currentPage+1);
returnString=returnString+"'>下一页</a> ";

returnString=returnString+"<a href='"+returnJSP+"?currentPage="+pageCount;
returnString=returnString+"'>末页</a> ";
}

return returnString;
}

public ResultSet getRs() {
return rs;
}

public void setRs(ResultSet rs) {
this.rs = rs;
}

public int getCurrentPage() {
return currentPage;
}

public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}

public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-28
写一个分页类,在servlet调用里面的方法取数据并传到jsp页面
分页类
package Tool;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

import com.sun.crypto.provider.RSACipher;
import com.sun.jndi.url.iiopname.iiopnameURLContextFactory;

public class Pagination2 {
static int renum;//数据库中所有数据
static int pagenow;//当前页
static int pagesize;//每页显示数据数
static int pagenum;//总页数
public static int Renum(List list){
int i=0;
for(;i<list.size();i++);
renum=i;
return renum;
}
public static int Pagenum(int pagesize,int renum){
pagenum=renum%pagesize==0?renum/pagesize:renum/pagesize+1;
return pagenum;
}
public static String Page(int pagenow,int pagenum){
int i;
String page="<script type='text/javascript'> function jump(){var jump=document.getElementById('jump');alert(jump.value);if(jump.value>0&&jump.value<="+pagenum+"){location.href='test?pagenow='+jump.value}else{alert('请输入正确的页数')}}</script><table> <tr> <td><input type='text' name='jump' id='jump'><input type='button' value='跳转' onclick='jump()'>当前页 "+pagenow+"/总页数"+pagenum+"";
if(pagenow>1){
page=page+" <a href='test?pagenow="+(pagenow-1)+"'>上一页</a>";
}
String page2="";
if(pagenow<=pagenum-2){
int j=pagenow+3;
i=pagenow;
do{
page2=page2+"  <a href='test?pagenow="+i+"'>"+i+"</a>";
i++;
}while(i<j&&i<=pagenum);
}else{
for(i=pagenum-2;i<=pagenum;i++){
page2=page2+"  <a href='test?pagenow="+i+"'>"+i+"</a>";
}
}
page=page+page2;
if(pagenow<pagenum){
page=page+" <a href='test?pagenow="+(pagenow+1)+"'>下一页</a></td></tr></table>";
}
return page;
}
public static List dateList(int pagenow,List list,int pagesize){
List list2=new ArrayList();
for(int i=(pagenow-1)*pagesize;i<pagenow*pagesize&&i<list.size();i++){
list2.add(list.get(i));
}
return list2;
}
}
jsp页面
<c:forEach items="${list}" var="item" >
<tr>
<td><c:out value="${item.参数 }"></c:out></td>
</tr>
</c:forEach>
<%=page2 %>
第2个回答  2012-05-16
for(int i=currentPage*3;i<(currentPage+1)*3;i++){
Employee employee = employees .get(i);
//显示
//................
}
相似回答