2012-03-01 3 views
0

По другим причинам я должен сделать цикл forEach на странице jsp, а не итерировать по коллекции. Мне нужно отобразить значение коллекции, но я возвращаю синтаксическую ошибку из-за внутренних фигурных скобок. Мне нужно сначала сбежать от нее? Как мне получить его для решения значения i, чтобы получить значение из colllection?Как отобразить элемент коллекции в JSP-странице

<c:if test="${maxColumns >= 0}"> 
    <c:forEach var="i" begin="0" end="${maxColumns}" step="1" varStatus ="status"> 
    <td height="20"> ${columnNames[${i}].columnName</td> 
</c:forEach> 
    </c:if> 

Спасибо за помощь.

+1

'$ {columnNames [i] .columnName}' не работает? Тем не менее, IMO это лучше работать за пределами уровня представления, а возврат подмножества коллекции тривиально. Почему бы не сделать это вместо этого? –

+0

да это действительно работа !! Я даже не думал о том, чтобы вытащить внутренние фигурные скобки, потому что я считал необходимым сначала решить эту проблему. Я пробовал все, кроме этого !! Спасибо. Кроме того, чтобы ответить на ваш вопрос, мне нужно показать всю коллекцию, но я должен отображать их определенным образом на основе значений из другой коллекции. – user984701

+0

Переведено для ответа. –

ответ

1

Вы не можете гнездятся JSP EL выражения, как это, но вы не должны - правильное выражение является:

${columnNames[i].columnName} 

i уже входит в сферу Е.Л. из-за forEach тега, и должен оцениваться как любая другая переменная области, например columnNames. Здесь это всего лишь индекс коллекции.

Несмотря на то, что я сочувствую воспринимаемой необходимости делать такую ​​логику в слое представления, IMO это почти всегда лучшая идея для наборов готовых наборов в Java - это также легче протестировать.

Смежные вопросы