1
我移植了一块遗留代码,看起来像这样:如何用ui迭代子列表:repeat?
<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
属性的方式做它。我真的很想避免在后端分割这个列表,因为这是一个纯视图问题,应该在那里处理。
所以问题是:我可以用我指定的方式替换上述片段吗?有什么选择?
这么简单,如此有效:-) – mabi 2013-04-08 11:09:30
第一个陈述是不正确的和误导。这根本不是JSF 2.x特性。这是一个EL 2.2功能。 JSF 2.x可以部署到根本不支持此功能的Servlet 2.5/EL 2.1容器。另一方面,JSF 1.x可以部署到支持此功能的Servlet 3.0/EL 2.2容器。另见:http://stackoverflow.com/questions/14382466/jsf-actionlistener-tag-calls-method-which-doesnt-take-an-actionevent-paramete/14382966#14382966 – BalusC 2013-04-08 15:06:59
@BalusC的确你是对的。我在印象之下JSF2'需要'EL2.2,但显然这是不正确的。我编辑了这篇文章。谢谢! – 2013-04-09 08:08:02