一尘不染

如何确定结果集是否为空?

jsp

美好的一天!

我想知道if-else statement如果要确定搜索是否存在,如何在期望的结果中获得结果。我按照与之相关的先前问题中的建议进行了各种组合,但仍然无法获得想要的东西。

代码1:如果我的搜索为空,则无法到达else语句。

        if (resultSet!= null) {
            while (resultSet.next()) {   //MULTIPLE VALUE SEARCH
                Product product = new Product();
                product.setProductId(resultSet.getInt("productId"));
                product.setProductName(resultSet.getString("productName"));
                productList.add(product);
            }
            request.setAttribute("productList", productList);
            RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
            rd.forward(request, response);
        } else {
            request.setAttribute("message", "Search Failed"):
            RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
            rd.forward(request, response);
        }

代码2:我也无法到达else语句,其中应显示搜索到的值…

        if (!resultSet.next()) {
             .... Search Failed Message    
        } else { 
             while(result.next()){.....
        }

代码3:与案例1相同的结果

        if (resultSet.wasNull()) {
             .... Search Failed Message    
        } else { 
             while(result.next()){.....
        }

我尝试了其他组合,但仍然无法达到我想要的结果,如下所示:当用户搜索一个值时,如果结果集为null,则将显示错误消息,否则,如果搜索不为null,则将进行1或多次搜索被显示。

请给我一个更简单的方法,因为我似乎做错了。

先感谢您..


阅读 421

收藏
2020-06-10

共1个答案

一尘不染

在代码1中:

    if(productList.size() == 0 ){
         request.setAttribute("message", "Search Failed"):        
    }else{
          request.setAttribute("productList", productList);             
    }

    RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
    rd.forward(request, response);

更合适的方法 将被设置

    if (resultSet!= null) {
        while (resultSet.next()) { 
            Product product = new Product();
            product.setProductId(resultSet.getInt("productId"));
            product.setProductName(resultSet.getString("productName"));
            productList.add(product);
        }
        request.setAttribute("productList", productList);
        RequestDispatcher rd = request.getRequestDispatcher("adminViewSearch.jsp");
        rd.forward(request, response);
    }

继续 jsp

<c:if test="${fn:length(companies) gt 0}">
   <!--display collection using c:foreach -->
</c:if>

<c:if test="${fn:length(companies) eq 0}">
   Search failed
</c:if>
2020-06-10