Chr*_*ler 13 java foreach jsp jstl
我想用实际的项目从我c:forEach的<% JavaCode/JSPCode %>.我如何访问此项目?
<c:forEach var="item" items="${list}">
<% MyProduct p = (MyProduct) ${item}; %> <--- ???
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
ska*_*man 18
内部的任何内容<% %>都必须是有效的Java,而${item}不是.这${...}是JSP EL语法.
你可以这样做:
<c:forEach var="item" items="${list}">
<% MyProduct p = (MyProduct) pageContext.getAttribute("item"); %>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
但是,这是编写JSP的一种可怕方式.当你已经在使用JSTL/EL时,为什么要使用scriptlet?显然,你正在把它放在那里<forEach>,不管它是什么,你应该能够不使用scriptlet.
不要使用scriptlet(即<% %>标签之间的东西.它被认为是不好的做法,因为它鼓励在视图上下文中放置太多代码,甚至是业务逻辑.相反,坚持使用JSTL和EL表达式.试试这个:
<c:forEach var="item" items="${list}">
<c:set var="p" value="${item}" />
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20778 次 |
| 最近记录: |