读书人

jsp+servlet+javabean的分页显示进来

发布时间: 2011-12-22 23:36:25 作者: rapoo

jsp+servlet+javabean的分页显示,进来给点思路,谢谢! 100分

Java code
 //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;   }

Java code
 //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);                        }       

我想单独在写一个javabean分页,在roomBean.java中调用分页bean,然后在jsp页面中用JSTL标签把页分出来,有了这样的思路,但是不知道该如何做?麻烦那位解答一下,谢谢

[解决办法]
呵呵,有开源的分页标签,自己google it ,感觉还可以。

[解决办法]
标记,回去查一下资料,
[解决办法]

[解决办法]
如果你想自己写jdbc来实现分页, 那页面要传递当前的页数和每页大小给servlet,
然后在写jdbc取数据的时候只取出自己想要的部分.
不同的数据库实现分页的查询有所差异, 而且有些数据库不支持.
比如sqlserver 就有select top 10 * from user 表示 取user表的所有字段, 但只取前10条记录. 根据这个查询, 你可演化出分页查询.

[解决办法]
如果你学了Hibernate就好了,那里面有分页功能
但不论你实用什么分页,你都要写一个分页的Bean,
主要有,总共行数,页数,每页要显示多少行,等字段
页面可以用Struts标签循环显示数据
也可以用Jstl的<c:foreach></c:foreach>标签
[解决办法]
jsp页面利用jstl标签来显示
servlet来做控制层,从数据库中取东西
bean实现具体的业务操作
[解决办法]
如果你想自己写jdbc来实现分页, 那页面要传递当前的页数和每页大小给servlet,
然后在写jdbc取数据的时候只取出自己想要的部分.
[解决办法]
在楼主的问题来看!~!
楼主还没有学习Hibernate吧!~!
没有关系!~!分页还是一样的可以实现!~!
1.你写一个PageBean的实体类!@~!包括(当前页、总页数、总行数、每页显示多少行、List)。这个List就是你要查询的实体的集合,把查询的信息都保存到这个list中,


2.就只用去创建一个存储过程!~!用来查询不同页数的记录!~
3.在数据访问层就直接用那个存储过程,sql = "{call 存储过程名字(参数)}";把查询的结果集保存到PageBean的List中
最后直接返回这个PageBean的对象就可以了!~!
4.直接从Servlet中获取PageBean、或者从JSP中获取这个就可以了!~!

[解决办法]

Java code
 
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;
}


[解决办法]
要不你留个邮箱
我给你发个完整实例
用一次看看就会了
[解决办法]
解决没有,要是没有,我的资源里面有个例子!
[解决办法]
jdbc 做的话,用recordset的游标,要传入要显示的页数和每页的大小
[解决办法]
我的思路是这样的。。

首先在 servlet 取得页面上的当前页数
如: Integer pageIndex = request.getParameter("pageIndex");
当前也可以取显示多少页,简单化不写了。

然后在 DAO 提供一个方法 , 第一个是当前页数,第二个是取得多少数据
如: List getList(int pageIndex,int pageSize){
// sql 语句大概就这样
sql = "select top pageSize from tb where id not in (select top pageIndex from tb)";
}

servlet 根据界面来传入相应的参数进行调整调用 DAO 返回给 界面就 OK 了:
如: 表示每页显示 15 行
request.setParameter(DAO.getList(pageIndex,15 )) ;

页面显示就不用写了吧。

读书人网 >J2EE开发

热点推荐