【问题标题】:For each loop with Expression Language对于每个带有表达式语言的循环
【发布时间】:2017-10-10 09:35:31
【问题描述】:

我想用表达式语言在 JSP 文件中打印出我列表中的每个“排序”项:

Try: Pizza-Margherita
Try: Cheese-Pizza

所以如果我使用这样的普通表达式,它就可以工作

Try: ${sorts[0]}
Try: ${sorts[1]}

但我必须为列表中的每个项目都写它

所以我尝试使用以下两个循环:

<c:forEach items="${sorts}" var="item">
   Try: ${item}<br>
</c:forEach>


<c:forEach var="item" items="${sorts}">
    <td>
       Try: <c:out value="${item}" />
    </td>
</c:forEach>

它不起作用,我每次都得到这个输出:

Try:

为什么我的 foreach 循环不起作用?我做错了什么?

【问题讨论】:

  • 你试过吗?
  • 是的,同样的问题
  • 你能提供一个完整的例子吗?
  • 编辑了问题

标签: java html jsp el


【解决方案1】:

这是因为您没有在 JSP 文件中包含核心标记库。 您将通过在文件顶部插入以下行来完成此操作。

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

【讨论】:

    【解决方案2】:

    这里是示例 JSP

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
       pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html lang="en">
       <head>
          <meta charset="utf-8">
       </head>
       <body>
          <c:forEach var="item" items="${sorts}">
             ${item.name}
          </c:forEach>
       </body>
    </html>
    

    这里是示例 Java 代码

    List<Sort> sortList = new ArrayList<>();
    
    Sort s1 = new Sort();
    s1.setName("Pizza-Margherita");
    Sort s2 = new Sort();
    s2.setName("Cheese-Pizza");
    
    sortList.add(s1);
    sortList.add(s2);
    
    request.setAttribute("sorts", sortList);
    

    示例对象类

    public class Sort {
        private String name;
       //create getter and setter for name
    }
    

    确保您已导入 JSTL 库。

    【讨论】:

      猜你喜欢
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多