`
danielhjd
  • 浏览: 242789 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

(Spring&Hibernate )Spring & Hibernate的整合分页问题之一:代码部分

    博客分类:
  • JDBC
阅读更多

list.jsp的分页跳转的代码:

 <tr align="center">
    	<td colspan="7">
    		共<s:property value="totalRows"/>行&nbsp;
    		第<s:property value="currentPage"/>页&nbsp;
                     <%-- 共<s:property value="totalPages"/>页&nbsp;%>
                 共<s:property value="pager.getTotalPages()"/>页&nbsp;
    		<a href="<s:url value="listBuyGoods.action">
    			<s:param name="currentPage" value="currentPage"/>
    			<s:param name="pagerMethod" value="'first'"/>	
    		</s:url>">首页</a>
    		
    		<a href="<s:url value="listBuyGoods.action">
    			<s:param name="currentPage" value="currentPage"/>
    			<s:param name="pagerMethod" value="'previous'"/>
    		</s:url>">上一页</a>
    		
    		<a href="<s:url value="listBuyGoods.action">
    			<s:param name="currentPage" value="currentPage"/>
    			<s:param name="pagerMethod" value="'next'"/>
    		</s:url>">下一页</a>
    		
    		<a href="<s:url value="listBuyGoods.action">
    			<s:param name="currentPage" value="currentPage"/>
    			<s:param name="pagerMethod" value="'last'"/>
    		</s:url>">尾页</a>
    	</td>
    </tr>	

 

list.action的代码:

public String list(){
		this.setTotalRows(String.valueOf(this.buygoodsDao.getRows()));
		System.out.println(this.getTotalRows());
		System.out.println(this.getCurrentPage());
		System.out.println(this.getPagerMethod());
		this.pager = this.pageService.getPager(this.getCurrentPage(), this.getPagerMethod(), Integer.parseInt(this.getTotalRows()));
//		System.out.println("---test---");		System.out.println(this.getTotalRows());		
		this.setCurrentPage(String.valueOf(pager.getCurrentPage()));
//		this.setTotalPages(String.valueOf(pager.getTotalPages()));
		this.setBuygoods(this.buygoodsDao.getPageAllBuyGoods(pager.getPageSize(),pager.getStartRow()));

		
//		Iterator it=this.buygoods.iterator();
//			while(it.hasNext()){
//				EbayBuygoods ee=(EbayBuygoods)it.next();
//				System.out.println(ee.getBName());
//			}
		return "success";	

Hibernate 代码:

	public List getPageAllBuyGoods(int pageSize, int startRow) {
		final int pageSize1= pageSize;
		final int startRow1= startRow;	
		return this.getHibernateTemplate().executeFind(new HibernateCallback(){

			public List doInHibernate(Session session)
					throws HibernateException, SQLException {
				    Query query=session.createQuery("from EbayBuygoods a order by a.BId desc");
				    query.setFirstResult(startRow1);
				    query.setMaxResults(pageSize1);
				return query.list();
			}});
	}

 

 The Codes of Class Pager & PagerService:

package com.dgy.util;

import java.math.*;

public class Pager {
	private int totalRows; //总行数
	private int pageSize = 3; //每页显示的行数
	private int currentPage; //当前页号
	private int totalPages; //总页数
	private int startRow; //当前页在数据库中的起始行
	
	public Pager() {
	}
	
	public Pager(int _totalRows) {
		totalRows = _totalRows;
		totalPages=totalRows/pageSize;
		int mod=totalRows%pageSize;
		if(mod>0){
			totalPages++;
		}
		currentPage = 1;
		startRow = 0;
	}
	
	public int getStartRow() {
		return startRow;
	}
	public int getTotalPages() {
		return totalPages;
	}
	public int getCurrentPage() {
		return currentPage;
	}
	public int getPageSize() {
		return pageSize;
	}
	public void setTotalRows(int totalRows) {
		this.totalRows = totalRows;
	}
	public void setStartRow(int startRow) {
		this.startRow = startRow;
	}
	public void setTotalPages(int totalPages) {
		this.totalPages = totalPages;
	}
	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}
	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}
	public int getTotalRows() {
		return totalRows;
	}
	public void first() {
		currentPage = 1;
		startRow = 0;
	}
	public void previous() {
		if (currentPage == 1) {
			return;
		}
		currentPage--;
		startRow = (currentPage - 1) * pageSize;
	}
	public void next() {
		if (currentPage < totalPages) {
			currentPage++;
		}
		startRow = (currentPage - 1) * pageSize;
	}
	public void last() {
		currentPage = totalPages;
		startRow = (currentPage - 1) * pageSize;
	}
	public void refresh(int _currentPage) {
		currentPage = _currentPage;
		if (currentPage > totalPages) {
			last();
		}
	}
}

 

package com.dgy.util;

public class PagerService {
	public Pager getPager(String currentPage,String pagerMethod,int totalRows) {
//		System.out.println("test pageservice");
		//	定义pager对象,用于传到页面
		Pager pager = new Pager(totalRows);
		//	如果当前页号为空,表示为首次查询该页
		//	如果不为空,则刷新pager对象,输入当前页号等信息
		if (currentPage != null) {
			pager.refresh(Integer.parseInt(currentPage));
		}
		//	获取当前执行的方法,首页,前一页,后一页,尾页。
		if (pagerMethod != null) {
			if (pagerMethod.equals("first")) {
				System.out.println("test first");
				pager.first();
			} else if (pagerMethod.equals("previous")) {
				pager.previous();
			} else if (pagerMethod.equals("next")) {
				pager.next();
			} else if (pagerMethod.equals("last")) {
				pager.last();
			}
		}
//		System.out.println("test pageservice end");
		return pager;
	}
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics