jsp+struts1.X 分页

后台数据库是mysql5.X,使用mysql的分页语句,如:select * from test limit 0,10;

Dao中分页取数据的方法:
Java代码   
  1. public List<Users> getPage(int start,int pageRecord)   
  2.     {   
  3.         conn = DBUtil.getConn();   
  4.         PreparedStatement pstmt = null;   
  5.         ResultSet rs = null;   
  6.         List<Users> userList = new ArrayList<Users>();   
  7.            
  8.         String sql = "select login_name,email,address,tel from users limit ?,?";   
  9.         try  
  10.         {   
  11.             pstmt = conn.prepareStatement(sql);   
  12.             pstmt.setInt(1, start);   
  13.             pstmt.setInt(2, pageRecord);   
  14.             rs = pstmt.executeQuery();   
  15.             Users user = null;   
  16.             while(rs.next())   
  17.             {   
  18.                 user = new Users();   
  19.                 user.setLoginName(rs.getString("login_name"));   
  20.                 user.setEmail(rs.getString("email"));   
  21.                 user.setAddress(rs.getString("address"));   
  22.                 user.setTel(rs.getString("tel"));   
  23.                 userList.add(user);   
  24.             }   
  25.         } catch (SQLException e)   
  26.         {   
  27.                
  28.             e.printStackTrace();   
  29.         }   
  30.         finally  
  31.         {   
  32.                
  33.             DBUtil.close(rs);   
  34.             DBUtil.close(pstmt);   
  35.             DBUtil.close(conn);   
  36.         }   
  37.         return userList;   
  38.     }  
public List<Users> getPage(int start,int pageRecord)
	{
		conn = DBUtil.getConn();
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		List<Users> userList = new ArrayList<Users>();
		
		String sql = "select login_name,email,address,tel from users limit ?,?";
		try
		{
			pstmt = conn.prepareStatement(sql);
			pstmt.setInt(1, start);
			pstmt.setInt(2, pageRecord);
			rs = pstmt.executeQuery();
			Users user = null;
			while(rs.next())
			{
				user = new Users();
				user.setLoginName(rs.getString("login_name"));
				user.setEmail(rs.getString("email"));
				user.setAddress(rs.getString("address"));
				user.setTel(rs.getString("tel"));
				userList.add(user);
			}
		} catch (SQLException e)
		{
			
			e.printStackTrace();
		}
		finally
		{
			
			DBUtil.close(rs);
			DBUtil.close(pstmt);
			DBUtil.close(conn);
		}
		return userList;
	}


分页的action:
Java代码   
  1. public class PageAction extends Action   
  2. {   
  3.     public ActionForward execute(ActionMapping mapping, ActionForm form,   
  4.             HttpServletRequest request, HttpServletResponse response)   
  5.             throws Exception   
  6.     {   
  7.         response.setContentType("text/html");   
  8.         response.setCharacterEncoding("utf-8");   
  9.            
  10.         //当前页   
  11.         String currentPageStr = request.getParameter("pageNo");   
  12.         int currentPage=0;   
  13.         //每页显示的记录数   
  14.         int pageSize = 10;   
  15.         try  
  16.         {   
  17.             currentPage =Integer.parseInt(currentPageStr);   
  18.         }   
  19.         catch(NumberFormatException e)   
  20.         {   
  21.             currentPage = 1;   
  22.         }   
  23.         //在数据库中从第几条开始      
  24.         int start = (currentPage -1) * 10;   
  25.         //在数据库中已分页的数据集合   
  26.         List<Users> list = DaoFactory.getUsersDaoInstance().getPage(start, pageSize);   
  27.         //所有记录的集合   
  28.         List<Users> allRecordList = DaoFactory.getUsersDaoInstance().getAll();   
  29.         //所有记录数   
  30.         int allRecord = allRecordList.size();   
  31.        
  32.         //总页数   
  33.         int totalPage = allRecord % pageSize==0?allRecord/pageSize : allRecord/pageSize + 1;   
  34.         List<Users> l = new ArrayList<Users>();   
  35.         Users user = null;   
  36.            
  37.         for(Users u : list)   
  38.         {   
  39.             user = new Users();   
  40.                
  41.             user.setLoginName(u.getLoginName());   
  42.             user.setEmail(u.getEmail());   
  43.             user.setTel(u.getTel());   
  44.             user.setAddress(u.getAddress());   
  45.                
  46.             l.add(user);   
  47.         }   
  48.         //总记录数   
  49.         request.getSession().setAttribute("allRecord", allRecord);   
  50.         //总页数   
  51.         request.getSession().setAttribute("totalPage", totalPage);   
  52.         //当前页数   
  53.         request.getSession().setAttribute("currentPage", currentPage);   
  54.         request.getSession().setAttribute("list", l);   
  55.         return mapping.findForward("success");   
  56.     }   
  57. }

前台页面代码:

Html代码   
  1.     <table align="center"  border="0">  
  2.          <tr>  
  3.         <td width="76%">  
  4.            <font size=4>总共${allRecord}条记录 - 当前页${currentPage }/总页数${totalPage }:</font>  
  5.         </td>  
  6.      </tr>  
  7.      <tr>  
  8.         <c:if test="${currentPage<=1}">  
  9.             首页   
  10.         </c:if>  
  11.         <c:if test="${currentPage>1}">  
  12.             <a href="page.do?pageNo=1">首页</a>  
  13.         </c:if>  
  14.         <c:if test="${currentPage<totalPage}">  
  15.             <a href="page.do?pageNo=${currentPage +1}"+>下一页</a>  
  16.         </c:if>  
  17.         <c:if test="${currentPage>=totalPage}">  
  18.             下一页   
  19.         </c:if>  
  20.         <c:if test="${currentPage<=1}">  
  21.             上一页   
  22.         </c:if>  
  23.         <c:if test="${currentPage>1}">  
  24.             <a href="page.do?pageNo=${currentPage -1 }">上一页</a>  
  25.         </c:if>  
  26.            
  27.         <c:if test="${currentPage>=totalPage}">  
  28.             尾页   
  29.         </c:if>  
  30.         <c:if test="${currentPage<totalPage}">  
  31.             <a href="page.do?pageNo=${totalPage}">尾页</a>  
  32.         </c:if>  
  33.      </tr>  
  34.     </table>  
  35. <table border="2" align="center">  
  36.        
  37.     <tr>  
  38.                     <td>用户名</td>  
  39.         <td>email</td>  
  40.         <td>电话</td>  
  41.         <td>地址</td>  
  42.     </tr>  
  43.     <c:forEach items="${list}" var="l">  
  44.     <tr>  
  45.            
  46.         <td>${l.loginName}</td>  
  47.         <td>${l.email }</td>  
  48.         <td>${l.tel }</td>  
  49.         <td>${l.address }</td>  
  50.     </tr>  
  51.     </c:forEach>  
  52. </table>  
  	<table align="center"  border="0">
  		 <tr>
		    <td width="76%">
		       <font size=4>总共${allRecord}条记录 - 当前页${currentPage }/总页数${totalPage }:</font>
		    </td>
		 </tr>
		 <tr>
		 	<c:if test="${currentPage<=1}">
		 		首页
		 	</c:if>
		 	<c:if test="${currentPage>1}">
		 		<a href="page.do?pageNo=1">首页</a>
		 	</c:if>
		 	<c:if test="${currentPage<totalPage}">
		 		<a href="page.do?pageNo=${currentPage +1}"+>下一页</a>
		 	</c:if>
		 	<c:if test="${currentPage>=totalPage}">
		 		下一页
		 	</c:if>
		 	<c:if test="${currentPage<=1}">
		 		上一页
		 	</c:if>
		 	<c:if test="${currentPage>1}">
		 		<a href="page.do?pageNo=${currentPage -1 }">上一页</a>
		 	</c:if>
		 	
		 	<c:if test="${currentPage>=totalPage}">
		 		尾页
		 	</c:if>
		 	<c:if test="${currentPage<totalPage}">
		 		<a href="page.do?pageNo=${totalPage}">尾页</a>
		 	</c:if>
		 </tr>
  	</table>
	<table border="2" align="center">
		
		<tr>
						<td>用户名</td>
			<td>email</td>
			<td>电话</td>
			<td>地址</td>
		</tr>
	  	<c:forEach items="${list}" var="l">
	  	<tr>
	  		
	  		<td>${l.loginName}</td>
	  		<td>${l.email }</td>
	  		<td>${l.tel }</td>
	  		<td>${l.address }</td>
	  	</tr>
	  	</c:forEach>
	</table>

 

 

 

 

 

http://lemo.iteye.com/blog/391872

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值