JSTL标记看不到java变量

时间:2012-08-08 08:33:59

标签: java jsp jstl

有一些JSP页面和List:

List<Articles> listArticles = ListArticles.getArticles(1);
Iterator<Articles> iter = listArticles.iterator();

然后我遍历此列表并将其元素添加到ArrayList

<%
    ArrayList<String> arts = new ArrayList<String>();
    while (iter.hasNext()) {
        Articles currentArticle = iter.next();
        arts.add(currentArticle.getTitle());
    }
%>

然后我尝试打印这个ArrayList,但没有任何反应(c:forEach根本看不到“$ {arts}”)

 <c:forEach var="listItem" items="${arts}">
       c:out value="${listItem}" />
 </c:forEach>

1 个答案:

答案 0 :(得分:4)

您需要将arts添加到页面上下文中。 JSTL标记不了解页面级JSP变量,它适用于JSP范围。

填充arts数组

后添加此项
pageContext.setAttribute("arts", arts);

你应该没事。