servletによるページング

12194 ワード

一、まず改ページする内容を検索する.セッションで保存
request.setAttribute("content",lst);

二、ページをクリックするたびに、現在何ページ目であるかを知るため、この変数をセッションに格納する
request.setAttribute("pageNum",pageNum);//pageNum            

三、全部で何ページのmaxPageがあるかを求めて、検索したすべてのデータの条数とあなたが自分で設定した各ページの条数を計算します
if (pageCount % 4 == 0) {
        maxPage = pageCount / 4;//pageCount = lst.size();lst        
    } else {
        maxPage = pageCount / 4 + 1;
    }
           
    request.setAttribute("pageNum",pageNum);//maxPage            
  • ページデザイン(JSPで実装)ページデザインでは、変数、すなわち現在の数ページ目のこの変数
  • を渡すだけです.
        pageNum = ${pageNum+1}
          pageNum = ${pageNum+1}
         pageNum = ${0}
         pageNum = ${maxPage-1}

    a.1ページ目の処理時に前のページをクリックできない
    if test="${pageNum>0}">
        「GoodsServicelet?pageNum=${pageNum-1}」>[ ページ]
       if>
       if test="${pageNum==0}">[   ]if>

    b.最後のページは次のページをクリックできません
     if test="${pageNum">
        "GoodsServlet?pageNum=${pageNum+1 }">[   ]
        if>
       if test="${pageNum==maxPage-1}">[   ]if>
  • 具体的な実装コードは以下の
  • である.
    1.servlet部分
    List lst = (List) request.getAttribute("goods");//          
            //               ,       ,             OK 
            if (lst == null) {
                GoodsImpl g = new GoodsImpl();
                lst = g.findAll();
            }
    
            //               
            String strNum = request.getParameter("pageNum");
            int pageNum = 0;//            
            int maxPage = 0;//    
            int pageCount = lst.size();//               
    
            //         ,        
            if (strNum == null) {
                strNum = "0";
            } else {//            (pageNum) 
                pageNum = Integer.parseInt(strNum);
            }
    
            //         
            if (pageCount % 4 == 0) {
                maxPage = pageCount / 4;
            } else {
                maxPage = pageCount / 4 + 1;
            }
    
            request.setAttribute("maxPage", maxPage);//       
            request.setAttribute("pageNum", pageNum);//          ,       
            request.setAttribute("goods", lst);//         
    
            request.getRequestDispatcher("/index.jsp").forward(request, response);

    2.ページ部分
    <table align="center" border="0" width="85%">
                    <tr bgcolor="#6699FF" width="30">
                        <td>    td>
                        <td>    td>
                        <td>    td>
                        <td>    td>
                    tr>
                    <c:forEach var="g" items="${goods}" begin="${pageNum*4}" end="${(pageNum+1)*4-1}">
                    <tr bgcolor="#DDDDDD" width="410">
                        <td>${g.gId }td>
                        <td>${g.sName }td>
                        <td><img src="${g.sImage }" width="78" height="120"/>td>
                        <td>${g.sPrice }td>
                    tr>
                    c:forEach>
                    <tr bgcolor="#6699FF" width="30">
                        <td colspan="4">
                            <a href="1">[  ]a>
                            <c:if test="${pageNum>0}">
                                <a href="GoodsServlet?pageNum=${pageNum-1 }">[   ]a>
                            c:if>
                            <c:if test="${pageNum==0}">
                                [   ]
                            c:if>
    
                            <c:if test="${pageNum>
                                <a href="GoodsServlet?pageNum=${pageNum+1 }">[   ]a>
                            c:if>
                            <c:if test="${pageNum==maxPage-1}">
                                [   ]
                            c:if>
                            <a href="GoodsServlet?pageNum=${maxPage-1 }">[  ]a>
                        td>
                    tr>
                table>