JSTL для каждой переменной использования в javacode
Я хочу использовать фактический элемент из моего c:forEach
в <% JavaCode/JSPCode %>
.
Как мне получить доступ к этому элементу?
<c:forEach var="item" items="${list}">
<% MyProduct p = (MyProduct) ${item}; %> <--- ???
</c:forEach>
Ответы
Ответ 1
Не используйте сценарии (т.е. материал между тегами <% %>
. Он считается плохой практикой, потому что он поощряет использование слишком большого кода, даже бизнес-логики, в контексте представления. Вместо этого придерживайтесь JSTL и EL-выражений Исследуйте это:
<c:forEach var="item" items="${list}">
<c:set var="p" value="${item}" />
</c:forEach>
Ответ 2
Все, что входит внутрь <% %>
, должно быть допустимым Java, а ${item}
- нет. ${...}
- это синтаксис JSP EL.
Вы можете сделать это следующим образом:
<c:forEach var="item" items="${list}">
<% MyProduct p = (MyProduct) pageContext.getAttribute("item"); %>
</c:forEach>
Однако это ужасный способ написать JSP. Почему вы хотите использовать скрипты, когда вы уже используете JSTL/EL? Очевидно, что вы помещаете что-то внутри <forEach>
, и что бы это ни было, вы можете обойтись без использования скрипта.