在jsp中使用jstl打印ArrayList

时间:2014-03-03 18:29:05

标签: jsp jstl

使用作为bean类的ArrayList类型的Countries我在使用以下代码时只获得一个空白页作为输出:

<%
    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>

2 个答案:

答案 0 :(得分:2)

您无需再次设置请求属性。您可以使用以下代码

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

这样你也可以摆脱scriptlet。

希望它有助于

答案 1 :(得分:1)

原因是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>