2017-08-13 81 views
1

我想显示产品表中显示的所有可用产品以显示在此页面上。我的jstl核心taglib被添加到头文件中。jstl标签<c:forEach不起作用

productList.jsp

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 
<%@include file="header.jsp"%> 

<div class="container-wrapper"> 
    <div class="container"> 
     <div class="page-header"> 
      <h1>All Products</h1> 

      <p class="lead">Checkout all the awesome products available now!</p> 
     </div> 

     <table class="table table-striped table-hover"> 
      <thead> 
      <tr class="bg-success"> 

       <th>Product Code</th> 
       <th>Product Name</th> 
       <th>Product Price</th> 
       <th></th> 
      </tr> 
      </thead> 
      <c:forEach items="${products}" var="product"> 
       <tr> 
        <td>${product.code}</td> 
        <td>${product.name}</td> 
        <td>${product.price}</td> 
        <td><a href="<spring:url 
        value="/product/viewProduct/${product.productId}" />" 
        > <span class="glyphicon glyphicon-info-sign"></span></a></td> 
       </tr> 
      </c:forEach> 
     </table> 
<jsp:include page="footer.jsp" /> 

我ProductController的是返回的产品清单。

ProductController的

@Controller 
public class ProductController { 
    @Autowired 
    ProductServiceImpl productService; 

    @RequestMapping(value="addProduct") 
    public String addProduct(){ 
     return ("addProduct"); 
    } 

    @RequestMapping(value = "/saveProduct") 
    public String saveProduct(@ModelAttribute("product") Product productInfo){ 
     productService.sace(productInfo); 
     return ("addProduct"); 
    } 
    @RequestMapping(value = "/productList", method = RequestMethod.GET) 
    public String productList(Model model){ 
     List<Product> productInfoList=productService.productList(); 
     model.addAttribute("products",productInfoList); 

     return "productList"; 
    } 
} 
当我运行在调试模式下,我可以清晰的看到产品的刀返回列表,所以没有数据从数据库中获取的问题,这个代码

ProductDao的

@Repository 
public class ProductDaoImpl implements ProductDao { 
    @Autowired 
    SessionFactory sessionFactory; 
    Session session; 
    Transaction tx; 

    public List<Product> productionList() { 
     session=sessionFactory.openSession(); 
     List<Product> productList=session.createQuery("from Product").list(); 
     return productList; 
    } 


} 

上的pom.xml依赖列表是

的pom.xml

<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>4.3.8.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>4.3.8.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>4.3.8.RELEASE</version> 

    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>4.3.8.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>4.3.8.RELEASE</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-orm</artifactId> 
     <version>4.3.8.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>5.2.1.Final</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.36</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/taglibs/standard --> 
    <dependency> 
     <groupId>taglibs</groupId> 
     <artifactId>standard</artifactId> 
     <version>1.1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 
    </dependencies> 

当前产品列表页

enter image description here

+0

请出示你的web.xml也。当servlet规范版本设置得太低时,这通常是一个问题。 – Gimby

回答

2

增加您.jsp页面顶部的下方线并再次检查

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
+0

这已经添加到header.jsp文件中,并且header.jsp文件包含在productlist.jsp中 –

+0

请问您是否需要再次检查? – sunkuet02

+0

我已多次检查和验证。即使我在productlist.jsp文件中添加了jstl核心taglib,它也不起作用。我很惊讶。 –

1

其实,这是非常难以回答的时候,我不知道你所有的代码或程序的为好。不过,我在过去使用jstl标签也遇到了错误。只是试图取代“的header.jsp”文件这一个:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

你可以看到这里的区别,我们增加了“core_rt”而不是“核心”。希望有所帮助!

0

添加下面一行<%@ page isELIgnored="false"%>
<%@ taglib prefix="c" .....>

EL是封闭的初始化打击版本web2.5