在jsp中使用jstl打印ArrayList
使用在jsp中使用jstl打印ArrayList,jsp,jstl,Jsp,Jstl,使用Countries类型的ArrayList作为bean类,当使用以下代码时,我只得到一个空白页作为输出: <% ArrayList<Countries> countryList = (ArrayList<Countries>) request.getAttribute("al"); %> <c:forEach items="${countryList}" var="item"> <c:out value="${item.
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>
原因是EL(表达式语言)在任何有效范围内都找不到任何名为countryList的变量。scriptlet中声明的变量对EL不可见,因此必须将其添加到有效范围中,例如请求so:
<%
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>
您无需再次设置请求属性。您可以使用以下代码
<c:forEach items="${al}" var="item">
<c:out value="${item.code}"></c:out>
<c:out value="${item.name}"></c:out>
</c:forEach>
这样,您也可以摆脱scriptlet。
希望有帮助无需在请求属性中再次设置列表,因为它已经存在于请求范围中。