我正在使用struts logic:iterate
,我需要更改它写出的最后一行的样式。
我在iterate标签上有一个bean:size
和indexId
,但我无法找出一个逻辑组合来说明bean:size = indexId
是否因为size是集合的大小,并且最大indexId
总是大小为-1,因为从0开始。
答案 0 :(得分:1)
我上一次做Struts的时间是今年年初,所以让我用最好的知识解释,
使用logic:iterate
无法确定集合的长度(请参阅说明here)。你需要做的是以下几点:
假设您的收藏品位于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 />
获取集合的大小,将其设置为变量,然后使用scriplets获取存储的集合大小,并使用<logic:equal>
标记查看最后一个索引在collections.size() -1
(但这很麻烦)。
希望这有帮助。
PS 代码粗糙....
答案 1 :(得分:0)
这可能会迟到,但我认为这有点清洁......
<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 {}
我希望它有所帮助。