Struts логика: итерация - PullRequest
       0

Struts логика: итерация

1 голос
/ 13 октября 2010

Я использую распорки logic:iterate, и мне нужно изменить стиль в последней строке, которую он записывает.

У меня есть bean:size и indexId на теге итерации, но я не могу определить логическую комбинацию, чтобы сказать, если bean:size = indexId, потому что размер - это размер коллекции, а максимальный indexId всегда будет иметь размер -1, потому что начинается с 0.

Ответы [ 2 ]

1 голос
/ 13 октября 2010

Мой последний раз, когда я делал Struts, был в начале этого года, поэтому позвольте мне объяснить с лучшим знанием

Невозможно определить длину коллекций с помощью logic:iterate (см. Объяснение здесь ). Что вам нужно сделать, это следующее:

Предполагается, что ваши коллекции находятся под request.setAttribute("collections", allMyCollections);

Вы можете использовать EL (язык выражений), чтобы определить размер и определить, равны ли они, используя c:if, т. Е. Таким образом:

<logic:iterate name="collections" id="curElement">
    <c:if test="${curElement.indexId == ${fn:length(collections) - 1}}">
        <!-- It is pretty messy ...but you get the idea -->
        <!-- We are the last element...whoohoo!!! -->
    </c:if>
</logic:iterate>

В противном случае используйте <bean:size />, чтобы получить размер коллекций, задайте для него переменную, и вы будете использовать скрипты, чтобы получить размер хранимых коллекций, и использовать теги <logic:equal>, чтобы увидеть, равен ли последний индекс collections.size() -1 (но это громоздко).

Надеюсь, это поможет.

PS Код грубый ....

0 голосов
/ 15 июля 2012

Это может прийти поздно, но я думаю, что это немного чище ...

<logic:lessThan name="currentIndex" value="${myCollectionSize - 1}">
    Some style...
</logic:lessThan>
<logic:equal name="currentIndex" value="${myCollectionSize - 1}">
    Some style on the last element...
</logic:equal>

или в CSS:

.someClass:last-of-type {}

OR

.someClass:last-child {}

Надеюсь, это поможет.

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