Struts逻辑:迭代

时间:2010-10-13 13:36:32

标签: java struts

我正在使用struts logic:iterate,我需要更改它写出的最后一行的样式。

我在iterate标签上有一个bean:sizeindexId,但我无法找出一个逻辑组合来说明bean:size = indexId是否因为size是集合的大小,并且最大indexId总是大小为-1,因为从0开始。

2 个答案:

答案 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 {}

我希望它有所帮助。