JSTL forEach 在 javacode 中使用变量
我想在 .如何访问此项目?c:forEach
<% JavaCode/JSPCode %>
<c:forEach var="item" items="${list}">
<% MyProduct p = (MyProduct) ${item}; %> <--- ???
</c:forEach>
我想在 .如何访问此项目?c:forEach
<% JavaCode/JSPCode %>
<c:forEach var="item" items="${list}">
<% MyProduct p = (MyProduct) ${item}; %> <--- ???
</c:forEach>
任何进入内部的东西都必须是有效的Java,而事实并非如此。是 JSP EL 语法。<% %>
${item}
${...}
你可以这样做:
<c:forEach var="item" items="${list}">
<% MyProduct p = (MyProduct) pageContext.getAttribute("item"); %>
</c:forEach>
但是,这是编写 JSP 的一种可怕方式。当你已经在使用 JSTL/EL 时,你为什么要使用 scriptlet?显然,你正在把一些东西放进去,不管它是什么,你应该能够在不使用脚本的情况下完成。<forEach>
不要使用脚本(即标签之间的东西。这被认为是不好的做法,因为它鼓励在视图上下文中放置太多的代码,甚至是业务逻辑。相反,请仅坚持使用 JSTL 和 EL 表达式。试试这个:<% %>
<c:forEach var="item" items="${list}">
<c:set var="p" value="${item}" />
</c:forEach>