搜索结果页面加载空白

时间:2014-07-22 06:30:26

标签: hibernate spring-mvc

这是一个使用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>  

1 个答案:

答案 0 :(得分:0)

您的表单操作是 searchproduct ,您的控制器操作是 searchproduct.html 。如果我是正确的,那么两个动作应该是相同的。

在结果JSP中添加<c:choose>标记而不是<c:if>来检查结果是否为空,然后显示没有找到结果的文本。