【发布时间】:2016-02-19 12:05:23
【问题描述】:
我在创建 jsp 文件时遇到了一些问题。我想使用 JSTL 以某种方式显示集合。首先,我在我的 jsp 中创建了一个 java 代码:
<% for(int i = 0; i < ((List<BookPosition>)request.getAttribute("books")).size(); i+=1) { %>
<label>Test</label>
<% } %>
然后,我创建了一个 JSTL sn-p。
<c:forEach var="book" items="$(books)">
<label>Test</label>
</c:forEach>
不幸的是,第一个输出正确数量的标签 (24),而 JSTL 版本只有一个标签(尽管该集合包含 24 个项目)。
为什么?
【问题讨论】:
-
你认为
$(books)代表什么?你为什么这么认为? -
不知道。我是 JSP / JSTL 的新手,发现了一些 sn-ps,在 servlet 端我应该设置:
request.setAttribute("books", myBookCollection);,使用调度程序将请求转发到 jsp,然后循环应该可以工作。 F.e:stackoverflow.com/a/4255741/5417374 -
看起来您使用的是括号 () 而不是花括号 {} - 试试 ${books}
-
我在任何地方都看不到符号
$()。检查语法。我投票结束,因为错字。 -
是的..括号...我忽略了。