【发布时间】:2010-10-13 13:36:31
【问题描述】:
我正在使用 struts logic:iterate,我需要更改它写出的最后一行的样式。
我在迭代标记上有一个bean:size 和indexId,但我无法找出一个逻辑组合来判断bean:size = indexId,因为大小是集合的大小,而最大值是indexId因为从 0 开始,所以总是大小为 -1。
【问题讨论】:
我正在使用 struts logic:iterate,我需要更改它写出的最后一行的样式。
我在迭代标记上有一个bean:size 和indexId,但我无法找出一个逻辑组合来判断bean:size = indexId,因为大小是集合的大小,而最大值是indexId因为从 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 /> 获取集合的大小,将其设置为变量,然后您将使用脚本获取存储的集合大小并使用<logic:equal> 标签查看最后一个索引是否位于@987654329 @(但这很麻烦)。
希望这会有所帮助。
PS代码很粗糙....
【讨论】:
这可能来晚了,但我认为这更干净一些......
<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 {}
或
.someClass:last-child {}
希望对你有帮助。
【讨论】: