美好的一天!
我想知道如果我想确定我的搜索是否存在,我如何才能在我的 if-else 语句
中获得所需的结果。我按照前面与此相关的问题中的建议进行了各种组合,但仍然无法得到我想要的。
代码 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()){.....
}
我尝试了其他组合,但仍然无法达到我想要的结果,如下所示: 当用户搜索一个值时,如果结果集为空,将出现错误消息,否则如果搜索不为空,将显示 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>
关于java - 如何判断结果集是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258366/