2014-07-22 236 views
0

這是一個使用spring和hibernate的簡單搜索操作。當我輸入搜索值並點擊提交時,結果頁面沒有任何內容加載。它不會拋出任何錯誤。它的空白。請有人指出我錯在哪裏。搜索結果頁面加載空白

ProductDAOImpl.java

public List<Product> searchProductByName(String productName) { 
      Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Product.class); 
      criteria.add(Restrictions.ilike("productName", productName+"%")); 
      return criteria.list(); 
     } 

ProductServiceImpl.java

@Transactional 
    public List<Product> searchProductByName(String productName) { 
     return productDAO.searchProductByName(productName); 
    } 

ProductController.java

@RequestMapping(value="searchproduct.html", method=RequestMethod.POST) 
    public ModelAndView searchProduct(@RequestParam String productName) { 
     ModelAndView mav = new ModelAndView("searchproduct"); 
     List<Product> productResults = productService.searchProductByName(productName); 
     mav.addObject("productResults", productResults); 
     return mav; 
    } 

searchform

<form action="searchproduct" method="post" > 
Product Name: <input type="text" name="productName"/> 
<input type="submit" value="Search" /> 
</form> 

searchproduct.jsp

<body> 
<c:if test="${!empty productResults}"> 
    <table class="productTable" border="1" cellpadding="0" cellspacing="0" align="center"> 
    <tr> 
     <th>Product Name</th> 
     <th>Price</th> 
     <th>Quantity</th> 
      </tr> 
    <c:forEach items="${productResults}" var="product"> 
     <tr> 
      <td>${product.productName}</td> 
      <td>${product.price}</td> 
      <td>${product.quantity}</td> 
        </tr> 
      </c:forEach> 
    </table> 
</c:if> 
</body> 

回答

0

表單動作searchproduct和控制器動作searchproduct.html。如果我是正確的,那麼這兩個行動應該是相同的。

並在您的結果JSP中添加<c:choose>標記而不是<c:if>以檢查結果是否爲空,然後顯示未找到結果的文本。

+0

是的,我的愚蠢的錯誤。我將控制器行爲也改爲'搜索產品',現在就開始工作。 – user3785322