【问题标题】:How to do display a specific number of result per page in jsp using servlet and jstl如何使用 servlet 和 jstl 在 jsp 中每页显示特定数量的结果
【发布时间】:2016-01-29 13:49:45
【问题描述】:

想获得一个关于如何在 jsp 中进行贪婪分页的工作示例。已经做了一些事情,但我的只显示 1 个结果。

jsp codes

<table id="menDisplayTable">    
            
            <tr id="menTr">
            <c:forEach items="${returnedMenWatches}" var="proDetails">
            <td id="menTd"><img src="data:image/jpg;base64,${proDetails.mode4}" height="50" width="50"/><br>
                            ${proDetails.brand}<br>
                            ${proDetails.name}<br>
                            ${proDetails.gender}<br>
                            ${proDetails.price}
             </td>
             </c:forEach> 
             </tr>
               
        </table>

servlet codes

           int page = 1;
        int recordsPerPage = 10;
        if(request.getParameter("page") !=null)
            page = Integer.parseInt(request.getParameter("page"));
        List<Product> returnedMenWatches = connect.getMenWatch();
        int noOfRecords = connect.getNoOfRecords();
        int noOfPages = (int) Math.ceil(noOfRecords * 1.0 / recordsPerPage);
        request.setAttribute("returnedMenWatches", returnedMenWatches);
        request.setAttribute("noOfPages", noOfPages);
        request.setAttribute("currentPage", page);
        request.getRequestDispatcher("men.jsp").forward(request, response);

DAO class 

static int noOfRecords;
     //method to display men products
     public List<Product> getMenWatch() throws SQLException {
         List<Product> returnedMenWatches = new ArrayList<Product>();
         String male = "Male";
         Statement myStatement = getConnection();
         String query = "SELECT Product_ID, Brand, Product_Name, Gender, Product_Price, Product_Picture_Main, COUNT(Product_ID) AS NoOfRecords "
                 + "FROM Products WHERE Gender = '"+male+"'";
         rs = myStatement.executeQuery(query);
         while (rs.next()){
             Product proDetails = new Product();
             proDetails.setProductId(rs.getInt("Product_ID"));
             proDetails.setBrand(rs.getString("Brand"));
             proDetails.setName(rs.getString("Product_Name"));
             proDetails.setGender(rs.getString("Gender"));
             proDetails.setPrice(rs.getFloat("Product_Price"));
             Blob mode1 = rs.getBlob("Product_Picture_Main");
               Blob mode2 = (Blob) mode1;
               byte[]mode3 = mode2.getBytes(1, (int)mode2.length());
               String mode4 = Base64.encode(mode3);
             proDetails.setMode4(mode4);
             noOfRecords = rs.getInt("NoOfRecords");
             returnedMenWatches.add(proDetails);
         }
         return returnedMenWatches;
     }
     // method to get number of records returned from the get men watches query 
     public int getNoOfRecords() {
        return noOfRecords;
    }

我需要你的帮助,在此先感谢。 做了一些编辑,我添加了 sql 查询所在的 DAO 代码。

【问题讨论】:

    标签: java jsp servlets jstl


    【解决方案1】:

    我认为您应该将&lt;c:foreach.... 放在&lt;tr&gt; 标记之前以重复表格行。

    【讨论】:

    • 请分享您的更改
    • 我更改了这个列表 returnedMenWatches = connect.getMenWatch((page-1)*recordsPerPage, recordsPerPage);到这个 List returnedMenWatches = connect.getMenWatch();
    【解决方案2】:

    像这样更改您的 jsp 代码以在您的 forEach 的每次迭代中添加 &lt;tr&gt; 标记。

    <table id="menDisplayTable">    
    
    
                    <c:forEach items="${returnedMenWatches}" var="proDetails">
                    <tr>
                    <td id="menTd"><img src="data:image/jpg;base64,${proDetails.mode4}" height="50" width="50"/><br>
                                    ${proDetails.brand}<br>
                                    ${proDetails.name}<br>
                                    ${proDetails.gender}<br>
                                    ${proDetails.price}
                     </td>
                     </tr>
                     </c:forEach> 
    
    
                </table>
    

    它应该可以工作。

    【讨论】:

    • 嗨,谢谢你的贡献,但我试过了,没用。
    • 与我们分享页面源代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    • 2015-02-12
    • 2013-05-06
    • 2015-04-04
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    相关资源
    最近更新 更多