jstl tag <c:foreach is =“”not =“”working =“”

时间:2017-08-13 11:02:33

标签: java spring

=“”

我想展示所有来自的产品要在此页面上显示的产品表。我的jstl核心taglib添加在头文件中。

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";
    }
}

当我在调试模式下运行此代码时,我可以清楚地看到dao返回产品列表,因此不存在从数据库中获取数据的问题。

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

3 个答案:

答案 0 :(得分:3)

.jsp页面的顶部添加以下行,然后重新检查

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

答案 1 :(得分:1)

实际上,当我不知道你的所有代码或过程时,很难回答。但是,我在过去使用jstl标签时也出错了。只是尝试在“header.jsp”文件中替换这个:

Creating service instance my-compose-for-mysql-service in org XXX / space XXX as XXX... FAILED Server error, status code: 502, error code: 10001, message: Service broker error: {"description"=>"Deployment creation failed - {\"errors\":\"insufficient_storage\",\"status\":507}"}

你可以在这里看到差异,我们添加了“core_rt”而不是“core”。希望有所帮助!

答案 2 :(得分:0)

添加以下行<%@ page isELIgnored="false"%>
<%@ taglib prefix="c" .....>之后

EL已关闭初始化版本web2.5