Как получить доступ к объекту карты Java в JSP - PullRequest
1 голос
/ 15 февраля 2012

У меня есть следующий цикл на моей странице jsp:

    <c:forEach var="i" begin="1" end="${ toLvvt }" step="1">
      <c:set var="mapKey">${to.id}-${record.rId}-${record.opjakso}</c:set>
        <c:if test="${MyMap[mapKey].v1s eq true}">
           ...do something...
        </c:if>>

Проблема здесь в том, что я хочу использовать var i извлечение значения объекта карты (выше v1s), например: v${i}s, но этонеправильно.

У меня есть карта Map<string, Object>.Объект имеет логические свойства v1s, v1k, v2s, v2k ...

Ответы [ 2 ]

0 голосов
/ 15 февраля 2012

Просто создайте его так же, как вы создали mapKey.

Е.Г.

<c:forEach var="i" begin="1" end="${toLvvt}" step="1">
  <c:set var="mapKey" value="${to.id}-${record.rId}-${record.opjakso}" />
  <c:set var="property" value="v${i}s" />
  <c:if test="${MyMap[mapKey][property]}">
    ..
  </c:if>
</c:forEach>

(обратите внимание, что я упростил одно и другое)

0 голосов
/ 15 февраля 2012

edit: хорошо, после вашей модификации я лучше понимаю вопрос, но я думаю, что вы пытаетесь сделать это не возможно: вам, вероятно, следует попытаться реализовать List getVs() для значений вашей карты, которые возвращаютсписок v{i}s и затем использовать его с value.vs[i] в вашем jsp.

Для записи мой первый ответ был:

<c:forEach> сначала предназначен для перебора коллекций,таким образом, вы должны попробовать что-то вроде этого:

<c:forEach var="entry" items="${MyMap}">
    <c:if test="${entry.value.v1s}">
        ...do something...
    </c:if>
</c:forEach>

Вы можете использовать LinkedHashMap или TreeMap, если хотите, чтобы вывод был каким-либо образом отсортирован.Возможно, вы также захотите взглянуть на библиотеку Display tag .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...