【发布时间】:2013-04-08 09:11:20
【问题描述】:
我正在迁移一段如下所示的遗留代码:
<c:forEach items="#{sel}" var="crit" end="12">
<tr>
<td class="criteriaName">
<c:set var="tip" value="#{Factory.makeTooltip(crit.string)}" />
<c:if test="#{0 != fn:length(tip)}">
<a:outputPanel layout="block">
<h:outputText value="#{crit.kriterium}" styleClass="tooltipAvailable"/>
<rich:tooltip layout="block">
<h:outputText escape="false" value="#{tip}" />
</rich:tooltip>
</a:outputPanel>
</c:if>
<c:if test="#{0 == fn:length(tip)}">
<h:outputText value="#{crit.kriterium}" />
</c:if>
</td>
</tr>
</c:forEach>
现在我希望将 <c:if> 和 <c:forEach> 替换为 <ui:fragment> 和 <ui:repeat> 对应项。问题是,我需要迭代 sel 两次:一次从 0 到 12,然后从 13 到结尾。
我还没有找到一种方法来拆分列表迭代,就像 foreach 标记的 end 属性那样。我真的很想避免在后端拆分列表,因为这是一个纯粹的视图问题,应该在那里处理。
所以问题是:我可以按照我指定的方式替换上面的片段吗?有哪些替代方案?
【问题讨论】:
标签: jsf-2