【问题标题】:printing ArrayList using jstl in jsp在jsp中使用jstl打印ArrayList
【发布时间】:2014-03-04 04:50:49
【问题描述】:

使用 Countries 类型的 ArrayList 是一个 bean 类,当使用以下代码时,我只会得到一个空白页作为输出:

<%
    ArrayList<Countries> countryList = (ArrayList<Countries>) request.getAttribute("al");
%>

<c:forEach items="${countryList}" var="item">
    <c:out value="${item.code}"></c:out>
    <c:out value="${item.name}"></c:out>
</c:forEach>

【问题讨论】:

    标签: jsp jstl


    【解决方案1】:

    你不需要再设置请求属性。你可以使用下面的代码

    <c:forEach items="${al}" var="item">
        <c:out value="${item.code}"></c:out>
        <c:out value="${item.name}"></c:out>
    </c:forEach>
    

    这样你也可以摆脱scriptlet。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      原因是 EL(表达式语言)在任何有效范围内都找不到任何名为 countryList 的变量。 scriptlet 中声明的变量对 EL 不可见,因此您必须将其添加到有效范围内,例如请求:

      <%
          ArrayList<Countries> countryList = (ArrayList<Countries>) request.getAttribute("al");
          request.setAttribute("countryList", countryList);
      %>
      
      <c:forEach items="${countryList}" var="item">
          <c:out value="${item.code}"></c:out>
          <c:out value="${item.name}"></c:out>
      </c:forEach>
      

      【讨论】:

      • 不需要在请求属性中再次设置列表,因为它已经存在于请求范围内。
      猜你喜欢
      • 2015-07-29
      • 1970-01-01
      • 2023-03-08
      • 2012-09-01
      • 2019-08-14
      • 1970-01-01
      • 2011-09-19
      • 2016-11-10
      • 1970-01-01
      相关资源
      最近更新 更多