jsp+servlet+javabean的分页显示,进来给点思路,谢谢! 100分
//roomBean.javapublic Vector list_room(String username){ Vector vc=new Vector(); String sql="select r_number,r_photo,if_book,r_area,r_price,r_facility,insert_time from room_info where username='"+username+"' order by insert_time desc"; try{ this.stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=stmt.executeQuery(sql); while(rs.next()) { bossBean bos=new bossBean(); bos.setR_number(rs.getString("r_number")); bos.setR_photo(rs.getString("r_photo")); bos.setR_area(rs.getString("r_area")); bos.setR_price(rs.getString("r_price")); bos.setR_facility(rs.getString("r_facility")); bos.setInsert_time(rs.getString("insert_time")); bos.setIf_book(rs.getString("if_book")); vc.add(bos); } } catch(Exception e) {e.printStackTrace();} return vc; } //selectList.javaif(request.getParameter("send").equals("list_room")){ username=(String)session.getAttribute("username"); String goToPage = request.getParameter("list_room"); Vector result=db.list_room(username,goToPage); request.getSession().setAttribute("list_room",(Object)result); request.getSession().setAttribute("boss_info",null); request.getSession().setAttribute("search",null); request.getSession().setAttribute("addroom",null); request.getSession().setAttribute("upload_success",null); request.getSession().setAttribute("nullresult",null); RequestDispatcher rd=request.getRequestDispatcher("trader_index.jsp"); rd.forward(request,response); }
2.就只用去创建一个存储过程!~!用来查询不同页数的记录!~
3.在数据访问层就直接用那个存储过程,sql = "{call 存储过程名字(参数)}";把查询的结果集保存到PageBean的List中
最后直接返回这个PageBean的对象就可以了!~!
4.直接从Servlet中获取PageBean、或者从JSP中获取这个就可以了!~!
[解决办法]
package com.winwen.util;
import java.util.List;
/**
* @author lov1986 E-mail: lqsgc@163.com
* @version 创建时间:Aug 19, 2008 9:22:22 PM 类说明
*/
public class Page {
/**
* 当前是第几页
*/
private int curPage; // 当前是第几页
/**
* 一共有多少页
*/
private int maxPage; // 一共有多少页
/**
* 一共有多少条记录(行)
*/
private int maxRowCount; // 一共有多少行
/**
* 每页显示多少行
*/
private int rowsPerPage; // 每页显示多少行
/**
* 当前页面要显示的数据列表(包含数据库返回对象的列表)
*/
private List list; // 当前页面显示的数据
/**
* 提交的表单的名称
*/
private String formName = "pageForm";// 提交的表单名称
/**
* 显示分页的前台页面路径名称
*/
private String target = "";
/**
* 页面显示下一页,上一页
*/
private String pageStr = "";
/**
* 默认每页显示记录数
*/
private static int ROWS_PER_PAGE = 15;
/**
* 分页信息初始化,每页显示记录数使用默认值
*
*/
public Page() {
this.curPage = 1;
this.maxPage = 1;
this.maxRowCount = 0;
this.rowsPerPage = ROWS_PER_PAGE;
}
/**
* <p>
* 设置当前分页页面要显示的数据对象列表
* </p>
*
* <p>
* 该对象可以是一个实现了 List 接口的任意列表
* </p>
*
* @param list -
* 实现了 List 接口的任意列表
*/
public void setList(List list) {
this.list = list;
}
/**
* 获取要在当前分页页面显示的数据对象列表
*
* @return 要显示在前台页面的数据对象列表
*/
public List getList() {
return this.list;
}
/**
* 设置记录的总行数(即所有满足条件的纪录总数)
*
* @param maxRowCount -
* 记录的总行数
*/
public void setMaxRowCount(int maxRowCount) {
this.maxRowCount = maxRowCount;
}
/**
* 获取记录的最大行数
*
* @return - 满足条件的所有记录条数
*/
public int getMaxRowCount() {
return this.maxRowCount;
}
/**
* 设置当前页数(即要显示在前台的当前页数)
*
* @param curPage -
* 当前页数
*/
public void setCurPage(int curPage) {
this.curPage = curPage;
}
/**
* 返回在前台显示的当前页数
*
* @return - 当前页数
*/
public int getCurPage() {
return this.curPage;
}
/**
* <p>
* 设置每页显示的记录条数
* </p>
* <p>
* 注意:如果每页显示的记录条数小于等于 0 ,则每页显示的记录条数将置为默认值
* </p>
*
* @param rows -
* 每页显示的记录条数
*/
public void setRowsPerPage(int rows) {
if (rows > 0) {
this.rowsPerPage = rows;
} else {
this.rowsPerPage = ROWS_PER_PAGE;
}
}
/**
* 设置页面提交表单的名称,默认为 pageForm,在一般情况下,使用默认值就能正常使用
*
* @param formName -
* 提交表单的名称
*/
public void setFormName(String formName) {
this.formName = formName;
}
/**
* 设置显示分页的前台页面路径名称
*
* @param target -
* 分页页面路径名称
*/
public void setTarget(String target) {
this.target = target;
}
/**
* 获取每页显示的记录条数
*
* @return - 每页显示的记录条数
*/
public int getRowsPerPage() {
return this.rowsPerPage;
}
/**
* 根据记录总数和每页显示的记录条数,计算总共有多少页
*
*/
public void setMaxPage() {
if (this.maxRowCount % this.rowsPerPage == 0) {
this.maxPage = this.maxRowCount / this.rowsPerPage;
} else {
this.maxPage = this.maxRowCount / this.rowsPerPage + 1;
}
}
/**
* 获取根据记录总数和每页显示的记录数计算得出的总页数
*
* @return - 记录总页数
*/
public int getMaxPage() {
return this.maxPage;
}
/**
* 获取前台分页页面提交表单的名称
*
* @return - 提交表单的名称
*/
public String getFormName() {
return this.formName;
}
/**
* 获取前台分页页面的路径名称
*
* @return - 前台分页页面的路径名称
*/
public String getTarget() {
return this.target;
}
/**
* 获取默认每页显示的记录条数
*
* @return - 默认每页显示的记录条数
*/
public int getDefaultRowsPerPage() {
return ROWS_PER_PAGE;
}