как получить доступ к элементу массива в jsp, когда индекс является переменной?

я получаю доступ к элементу в arraylist. проблема возникает, поскольку индекс требуемого элемента является переменной. кто-нибудь может мне помочь?

eg <td><c:out value="${PARENT_MODULE[module.moduleId]}"> </c:out></td>

здесь module.moduleId — это переменная.

я уже пробовал

<c:out value="${PARENT_MODULE[${module.moduleId}]}">

однако это дает ошибку.

org.apache.jasper.JasperException: /WEB-INF/jsp/showModules.jsp(40,20) "${PARENT_MODULE[${module.moduleId}]}" содержит недопустимые выражения: javax.el.ELException: Ошибка синтаксического анализа: ${PARENT_MODULE[${module.moduleId}]}

Благодарность


person Shubham    schedule 27.02.2013    source источник
comment
Вам не нужно использовать ${} вокруг module.moduleId, <c:out value="${PARENT_MODULE[module.moduleId]}"> должно работать.   -  person obourgain    schedule 27.02.2013
comment
большое спасибо! я никогда не пробовал это.. как я думал, что это маловероятно..   -  person Shubham    schedule 27.02.2013


Ответы (2)


Предполагая, что PARENT_MODULE — это псевдоним, который вы дали массиву modules Предполагая, что module — это объект, а moduleId — атрибут в объекте модуля

попробуй это:

< c:out value="${PARENT_MODULE[num].moduleId}"/>

где num — число. PARENT_MODULE[num] вернет объект module в позиции "num" в массиве. и после этого все, что вам нужно сделать, это получить доступ к атрибуту moduleId.

person Shardayyy    schedule 03.03.2013

Поскольку module.moduleId находится внутри выражения EL, оно будет оцениваться. Поэтому вам не нужно заключать его в дополнительный ${}.

<c:out value="${PARENT_MODULE[module.moduleId]}"> будет работать.

person obourgain    schedule 27.02.2013