2013-05-10 156 views
4

我尝试做一些简单的事情,但它不起作用。我想念一些明显的东西吗?Foreach(spring)在JSP中不起作用

我的jsp:

<c:if test="${not empty listeApp}"> 
<table border = "1"> 
    <c:forEach var="apps" items="${listeApp}" > 
     <tr> 
      <td>${apps.ID_APPLICATION}</td> 
      <td>${apps.ID_APPLICATION}</td> 

     </tr> 
    </c:forEach> 
</table> 

我的控制器:显示

public ModelAndView portail() { 

     applicationDao appDAO = new applicationJPADaoImpl(); 
     return new ModelAndView("portail", "listeApp", appDAO.listeAll()); 

} 

没有。

${listeApp[0].ID_APPLICATION}的作品。

我的清单很好,我在没有任何问题的情况下将它打印在sysout中。 我可以得到长度${fn:length(listeApp)}但我想使用Foreach功能:)

有什么建议吗? 感谢

+0

您是否尝试在foreach中仅打印文本?看它是否迭代? – 2013-05-10 12:38:08

+0

它没有。以及它仅打印一旦.. \t \t \t \t测试 \t \t \t =>结果:测试 – MinionKing 2013-05-10 12:40:34

回答

5

我找到了解决办法: 包括这JSP

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

我觉得自己像个白痴:)

1

在测试项目中,我做了如下:

控制器代码:

@RequestMapping(value = "{id}", method = RequestMethod.GET) 
public String getView(@PathVariable Long id, Model model) { 
    List<Menu> menus = menuService.findAllMenus(); 

    model.addAttribute("menus", menus); 

    return "menu/view"; 
} 

JSP代码:

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

<html> 
    <head> 
    <title>Title in Work!</title> 
    </head> 
    <body> 
    <table style="align:center;"> 
     <th>Name</th> 
     <th>Price</th> 
     <th>Restaurant</th> 
     <c:forEach items="${menus}" var="menu"> 
     <tr> 
      <td><c:out value="${menu.name}"/></td> 
      <td><c:out value="${menu.price}"/></td> 
      <td><c:out value="${menu.restaurant.name}"/></td> 
     </tr> 
    </c:forEach> 
</table> 

编辑

完井缘故

  1. 确保JSTL在JSP页面中输入
  2. 确保JSTL的jar在类路径
  3. 确保JSP中使用的名称与控制器中使用的名称相同

成功。希望它可以帮助你!