У меня есть следующий код в моем JSP:Оценить выражение в JSTL
<c:set var="myBoolean" value="item.lock${myappli.code.value()}"/>
<c:out value="${myBoolean}"/>
<c:out value="${requestScope[myBoolean]}"/>
В пункте у меня есть несколько булевы lockCode1, lockCode2, .... поэтому я использую Елки строки кода, чтобы получить строку "item.lockCode1", "item.lockCode2". Это выражение (item.lock $ {myappli.code.value()}) отлично работает. Я использую его для создания своих флажков:
<form:checkbox path="item.lock${myappli.code.value()}" value="item.lock${myappli.code.value()}" />
Теперь то, что я хотел это оценить значение «item.lockCode1», «item.lockCode2», .... так что я получаю значение из boolean lockCodeX.
Когда я пишу
<c:out value="${myBoolean}"/>
отображает: item.lockCodeX
Я нашел третью строчку на StackOverflow:
<c:out value="${requestScope[myBoolean]}"/>
, который я надеялся бы оценить "item.lockCodeX" и дать мне «истинное» или «ложное», то есть его ценность. Но это не работает. Как я могу получить выражение «item.lockCodeX» для оценки true/false?
Спасибо, Е.
PS: Моя конечная цель состоит в том, что я хочу (дез) активировать опцию в соответствии со значением булевой item.lockCodeX. Так я думал о чем-то вроде этого:
<c:choose>
<c:when test="here evaluate my expression to true/false">
<form:checkbox path="item.lock${myappli.code.value()}"
value="item.lock${myappli.code.value()}" disabled="false"/>
</c:when>
<c:otherwise>
<form:checkbox path="item.lock${myappli.code.value()}"
value="item.lock${myappli.code.value()}" disabled="true"/>
</c:otherwise>
</c:choose>
PS2: Я не могу использовать карту, код так, я не могу изменить его.
PS3: Я попытался написать:
<c:when test="item.lock${myappli.code.value()}">
и <c:when test="${item.lock${myappli.code.value()}}">
, но он не работает.
PS4: Вот соответствующие строки элемента объекта:
public class Lot extends BaseEntite {
...
private Boolean lockBEL;
private Boolean lockPAR
private Boolean lockCIA;
private Boolean lockAFA;
private Boolean lockLO;
...
В моем контроллере я получаю объект из веб-сервиса, и я положил его в ModelAttribute searchForm:
searchMetier.getResultsSearch(context, this.formToDemand(searchForm));
От вашего кода, я не получаю какой тип переменных isLockCode1 и lockCode? Является ли элемент коллекцией, содержащей объекты lockCode1, lockCode2, ..., и эти объекты имеют логические поля isLockCode1 или isLockCode2? – drgPP
@drgPP Элемент - это объект, который содержит логические значения, такие как lockCode1, item.lockCode2 и т. Д. – EColi
Можете ли вы опубликовать код, как вы создаете объект объекта ?, и это класс? – drgPP