当前位置:首页 > 开发 > 编程语言 > Java > 正文

java ee中实现翻页

发表于: 2014-09-17   作者:陈静静2014   来源:转载   浏览:
摘要: 今日学习笔记(老师给写好的): 1.在jsp加分页的格式: <table id="tblTurnPage" cellSpacing="0" cellPadding="1" width="100%" border="0" style="font-family:arial;c
今日学习笔记(老师给写好的):
1.在jsp加分页的格式:
<table id="tblTurnPage" cellSpacing="0" cellPadding="1" width="100%" border="0" style="font-family:arial;color:red;font-size:12px;">	    		
    			<tr>
    				<td>总记录数:${RecordAllCount}</td> 
    				<td>总页数:${PageAllCount}</td>
    				<td>当前页:${CurrentPageNo}</td>
    				<td>[url=BuyRecordSvl?page=1]首页|[/url]
    				    [url=BuyRecordSvl?page=${CurrentPageNo-1}]《上一页|[/url]
    				    [url=BuyRecordSvl?page=${CurrentPageNo+1}]下一页》|[/url]
    				    [url=BuyRecordSvl?page=${PageAllCount}]末页|[/url]</td>
    				<td>跳转到:第<input type="text" size="3" >页<input type="button" value="go"></td>
    			</tr>	    		
    		</table>


2.在数据传输层定义一个类,其中两个为输入项,两个为返回值

public class TurnPagePara {
	//翻页参数
	public int CurrentPageNo = 1;//当前要显示的页码-----输入项-----------------------页号从1开始
    public int OnePageCount = 8;       	    	//每页要显示的记录数(默认值为8)---输入项
	public int RecordAllCount;        	    	//记录总数			----返回值
    public int PageAllCount;          			//共有多少页

}


3.在需要分页的dao里传入翻页参数,并且根据简单算法计算每页开始和结尾的值,传入BaseDao的executeQuery方法:
tp.RecordAllCount = this.getRecCount(sql);         	//返回总记录数和总页数
		tp.PageAllCount = (tp.RecordAllCount-1)/tp.OnePageCount + 1;
		if(tp.CurrentPageNo>tp.PageAllCount)
			tp.CurrentPageNo = tp.PageAllCount;
		int isStart = (tp.CurrentPageNo-1)*tp.OnePageCount + 1;
		int isEnd = isStart + tp.OnePageCount;
                ResultSet rs=executeQuery(sql,isStart,isEnd);


4.在连接数据库基础类里面加上三个方法:

//根据翻页参数,获得需要的结果集(oracle)  iStart从1开始>=iStart; <iEnd
	public  ResultSet executeQuery(String strSql,int iStart,int iEnd){	
		ResultSet rs = null;			
		try{
			Statement st = conn.createStatement();	
			if(st != null){				
				String strNew = "select * from  (select rownum numrow,tb.* from ( " + strSql + " ) tb ) where numrow >=" + iStart + " and numrow<" + iEnd ;					
				rs = st.executeQuery(strNew);
			}				
		}catch(SQLException ex){
					
		}		
		return rs;
	}   
	
	public  int getRecCount(String strSql){
		int iRec = 0;
		
		//mysql 中必须加别名w
		String strExe = "SELECT count(*) FROM (" + strSql + ") w";	
		Object obj = executeScalar(strExe);
		if(obj != null){
			iRec = Integer.parseInt(obj.toString());		
	}
	
	return iRec;
}

//返回查询结果的第一行第一列的值(---如果没有查询结果,则返回null)
	public  Object executeScalar(String strSql){
		ResultSet rs;			
		Object obj;
		
		obj = null;
		rs = null;
		try{
			
			Statement st = conn.createStatement();						
			rs = st.executeQuery(strSql);
			if( rs != null ){
				while( rs.next()){
					if(rs.isFirst()){
						obj = rs.getObject(1);  //columnIndex - 第一个列是 1
						break;
					}						
				}
				rs.close();
			}				
		}
		catch(SQLException ex){
						
		}		
		
		return obj;
	}


5.在需要将值传到分页页面的servlet中new一个分页参数,对其进行判断,最后通过jsp显示出来:

String strPageNo = request.getParameter("page");
		int pageNo = 1;
		try {
 			if(strPageNo != null && !strPageNo.equals("")){
				pageNo = Integer.parseInt(strPageNo);
				if( pageNo <1 )	//第一页时选择上一页,pageNo仍然等于1
					pageNo = 1;
			}						
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}		
		
		UserBiz biz =new UserBiz();
		TurnPagePara tp=new TurnPagePara();
		tp.OnePageCount = 10;
		tp.CurrentPageNo = pageNo;

                        request.setAttribute("RecordAllCount", tp.RecordAllCount);
			request.setAttribute("PageAllCount", tp.PageAllCount);
			request.setAttribute("CurrentPageNo", tp.CurrentPageNo);

java ee中实现翻页

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
现在,我们开始在应用服务器上部署一个与前例类似的Web服务。为了能够运行本节的例子,我们需要从ht
Googel 标签: 李顺利 ; Java ; Java EE ; eclipse ; java ee ; 配置 ; jboss 服务器 ; java 在Eclip
在Eclipse for Java EE中配置JBoss服务器 Googel 标签: 李顺利 ; Java ; Java EE ; eclipse ; java
EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。凭借java跨平台的优
1、 Myeclipse的默认编码设置。 修改所有文本文件的编码设置:Windowsàpreference 修改编辑器的编码
用Java EE 5实现的网上书店实例<!----><!----><!----><!----><!---->
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnbl
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.htm
用Java EE 5实现的网上书店实例<!-- BEGIN WRAPPER TABLE, 2 COLUMN, MAIN/RIGHT --><!--
用Java EE 5实现的网上书店实例 李力 (ada.li@sun.com) 2007/10/23 本教程介绍了如何使用NetBeans I
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号