jsp分页

1、Service类分页代码

    

/**
	 * 功能:分页查询一级栏目下所有子栏目下的新闻
	 * param:
	 * 		 parent_id 一级栏目id
	 *  page 第几页 pagesize 每页记录数 
	 *  return NewsExt对象组成的数组
	 */
	public ArrayList<News> selectByPage(int parent_id, int page, int pagesize) {
		ArrayList<News> arr = new ArrayList<News>();
		Connection conn = null;
		try {
			conn = DbConn.getConn();
			int start = (page - 1) * pagesize;
			// String sql = "select * from tb_menu where menu_name like '%?%'
			// menu_id asc limit (?-1)*?,?";
			String sql = "SELECT * FROM tb_news WHERE cat_id IN (SELECT cat_id FROM tb_category WHERE parent_id="+parent_id+")  order by news_id desc limit "
					+ start + "," + pagesize;

			System.out.println("sql:" + sql);

			PreparedStatement pstmt = conn.prepareStatement(sql);
			// pstmt.setString(1, menu_name);
			// pstmt.setInt(2, page);
			// pstmt.setInt(3, pagesize);
			// pstmt.setInt(4, pagesize);
			ResultSet rs = pstmt.executeQuery();
			while (rs.next()) {
				News news = new News();

				news.setNews_id(rs.getInt("news_id"));
				news.setCat_id(rs.getInt("cat_id"));
				news.setTitle(rs.getString("title"));
				news.setUrl(rs.getString("url"));
				news.setTitle_pic(rs.getString("title_pic"));
				news.setDescription(rs.getString("description"));
				news.setContent(rs.getString("content"));				
				news.setIs_top(rs.getShort("is_top"));
				news.setIs_recommend(rs.getShort("is_recommend"));
				news.setCreate_time(rs.getLong("create_time"));
				news.setUpdate_time(rs.getLong("update_time"));
				news.setView_nums(rs.getLong("view_nums"));

				arr.add(news);
			}
			rs.close();
			pstmt.close();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DbConn.close(conn);
		}

		return arr;
	}

	/*
	 * 功能:分页查询一级栏目下所有子栏目下的新闻记录总数 
	 * param: 
	 * parent_id 一级栏目id
	 * return 符合条件的总记录数
	 */
	public int selectCount(int parent_id) {
		int rs_count = 0;
		Connection conn = null;
		try {
			conn = DbConn.getConn();
			String sql = "SELECT count(1) as rs_count FROM tb_news WHERE cat_id IN (SELECT cat_id FROM tb_category WHERE parent_id="+parent_id+") order by news_id desc";
			
			System.out.println("selectCount sql:" + sql);

			PreparedStatement pstmt = conn.prepareStatement(sql);
			// pstmt.setString(1, menu_name);
			ResultSet rs = pstmt.executeQuery();
			while (rs.next()) {
				rs_count = rs.getInt("rs_count");
			}
			rs.close();
			pstmt.close();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DbConn.close(conn);
		}
		return rs_count;
	}

2、jsp页面中的分页代码

//分页查询
	NewsService newsService = new NewsService();
	
    int pagenow=1;     //当前第几页    
    String pagenow_str = request.getParameter("pagenow");
    if(pagenow_str != null && !pagenow_str.isEmpty() ){
           pagenow = Integer.parseInt(pagenow_str);
    }
    
    //每页记录数
    int pageSize = 2 ;
    
    //查询当前页的记录
	ArrayList<News> list = newsService.selectByPage(16,pagenow,pageSize);
	
	//总记录数
	int rowCount = newsService.selectCount(16);

显示分页导航:

<%
        if(pagenow>1) {
       %>       
         &nbsp;&nbsp;<a href=case.jsp?pagenow=<%=pagenow-1%> >【 上一页 】 </a>   
        <%
          }else{
       %>
         &nbsp;&nbsp;<a href=case.jsp?pagenow=<%=pagenow%> >【 上一页 】 </a>   
       <%
         }
        %>
     <%
       int pagenum = rowCount/pageSize ;
       if( rowCount % pageSize != 0 ) pagenum++ ; 
       for( int i=1 ; i<=pagenum ; i++ ){
     %>
      <a href=case.jsp?pagenow=<%=i %> >【<%=i %>】</a>  
     <% 
       }   
      if( pagenow < pagenum ){     
    %>
 
       <a href=case.jsp?pagenow=<%=1+pagenow%> >【 下一页 】 </a> 
    <% }else{ %>
       <a href=case.jsp?pagenow=<%=pagenow%> >【 下一页 】 </a> 
    <% }%>  

新蔷程序员特训营,带领初学者快速开发商业项目:https://paishenwx.taobao.com/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值