我正在将应用程序从JSF 1.2迁移到JSF 2.0。我在JSF 1.2中有一个a4j:网格重复标记。我们知道a4j:repeat在JSF 2.0中不起作用,我需要一个替代的重复标记。我应该使用ui:repeat(Facelets标签)还是c:forEach(JSF Core)?
答案 0 :(得分:1)
<a4j:repeat>
与<ui:repeat>
具有相同的生命周期(在视图渲染时运行的UI组件)。因此,当替换1对1时,<ui:repeat>
是正确的选择。
<c:forEach>
是一个在视图构建期间运行的标记处理程序。它不会出现在JSF组件树中,但它会参与构建它。
在<h:panelGrid>
内使用时,很容易观察到并理解这种差异。 <ui:repeat>
创建一个单元格,多次重新渲染。 <c:forEach>
创建多个单元格,每个单元格只渲染一次。