您的位置:首页 > 其它

s2sh 实现分页显示,分页标准模版

2012-09-02 15:48 197 查看
实现分页的模版代码。服务器端只需要传回一个List就ok了。
jsp的代码:

<%@ page language="java"  pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  	<script type="text/javascript">
  		window.onload=function(){
  		
  			var goPage = document.getElementById("goPage");
  			var go = document.getElementById("go");
  			go.onclick=function(){
  				var num = goPage.value;
  				if(parseInt(num)){
  					if(num<=0){
  					goPage.value=1;
  					}
  				else if(num>=${pageInfo.pageCount}){
  						goPage.value=${pageInfo.pageCount};
  						
  					}
  					document.getElementById("form").submit();
  				}
  				else{
  					alert("无效页数!")
  				}
  				
  			}
  			
  		}
  		
  	</script>
  </head>
  
  <body>
   
   <table align="center" width="80%"> 
   		<tr><th>部门编号</th><th>部门名称</th><th>部门位置</th></tr>
   		<s:iterator value="list" id="d">
   		<tr align="center"><td>${deptno }</td><td>${dname }</td><td>${loc }</td></tr>
   		</s:iterator>
   		
   </table>
   	<div align="center">
   	<s:if test="pageInfo.pagenum==1">
  				 首页  上一页 
  		 </s:if>
  		 <s:else>
  		 		<a href="dept!getAllDeptByPage.action?pageInfo.pagenum=1">首页</a>  
  		 		<a href="dept!getAllDeptByPage.action?pageInfo.pagenum=${pageInfo.pagenum-1 }">上一页</a>  
  		 		
  		 </s:else>
   	<s:if test="pageInfo.pagenum==pageInfo.pageCount">
   				下一页  尾页 
   	</s:if>
   	<s:else>
   				<a href="dept!getAllDeptByPage.action?pageInfo.pagenum=${pageInfo.pagenum+1 }">下一页</a>  
  		 		<a href="dept!getAllDeptByPage.action?pageInfo.pagenum=${pageInfo.pageCount }">尾页</a>  
   	</s:else>
   	第${pageInfo.pagenum }页/共${pageInfo.pageCount }页 
   	<form action="dept!getAllDeptByPage.action" method="post" id="form">
   	跳转到<input type="text" name="pageInfo.pagenum" id="goPage" size="1"/>页
   	<input type="button" value="go" id="go"/>
   	</form>
   	</div>

   
   
   
  </body>
</html>

action 中的代码很简单,就是调用service的查说有就行了

private DeptServiceImpl service;
	private List list;
	
	private PageInfo pageInfo;

	
	public String getAllDeptByPage()throws Exception{
		String target = "";
			list = service.getAllByPage(pageInfo);	
			System.out.println(list.size());
			target = "deptMain";
		return target;
	}

不要忘记了属性的getter/setter方法

service方法调用dao里的查询按分页方法

private DAO dao;
	public List getAllByPage(PageInfo pageInfo){
		System.out.println("查所有分页");
		List list = null;
		String hql = "from Dept2 d";
		list = dao.getQueryByPage(hql, pageInfo);
		System.out.println(list.size());
		return list;
	}


dao里则更具传过来得页数来查询相应的内容,

代码:

public List getQueryByPage(final String hql, final PageInfo pageInfo) {
		List list = null;
		list = (List)this.getHibernateTemplate().executeWithNativeSession(new HibernateCallback(){
			List list = null;
			public Object doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query = session.createQuery(hql);
				ScrollableResults sr = query.scroll();
				sr.last();
				int rowNumber = sr.getRowNumber();
				System.out.println("一共多少条2222:");
				System.out.println(rowNumber+1);
				pageInfo.setRowCount(rowNumber+1);
				query.setFirstResult(pageInfo.getBegin()-1);
				query.setMaxResults(pageInfo.getPerCount());
				list = query.list();
				return list;
			}
			
		});
		return list;
	}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: