迭代JSF 1.2中的列表

时间:2012-10-02 19:12:54

标签: jsf jsf-1.2

有没有办法在不使用任何第三方组件的情况下迭代JSF 1.2中的列表?我知道我可以用战斧来做。我也知道可以使用JSTL完成,但我保留这是我的最后手段。我也不能使用<ui:repeat>,因为我们使用的是JSF 1.2。在jsf 1.2中有没有<ui:repeat>这样的优雅方式?

1 个答案:

答案 0 :(得分:8)

可以迭代List的唯一JSF 1.2 component<h:dataTable>

在JSP中,唯一可以迭代List的其他“标准”(即非“第三方”)标记是JSTL <c:forEach>。如果您想要迭代的List在视图构建期间已经可用,那么使用JSTL不应该造成太大的伤害。只有在视图渲染时才可用时才会遇到麻烦,例如因为它嵌套在<h:dataTable>中并且应该迭代表var的属性。由于JSTL in JSF2 Facelets... makes sense?

中提到的原因,这不起作用

没有其他方法可以不使用第三方库,例如Tomahawk的<t:dataList>,除非您愿意通过自己创建自定义UIComponent来重新发明轮子。然而,这不是一项微不足道的工作。

然而,可以在JSF 1.2中集成Facelets 1.x. Facelets 1.x docbook中描述了一个指南。如果你已经有一个使用JSP作为视图技术的现有JSF应用程序,那么这只是一些工作;你需要将JSP转换为Facelets。但它最终会使JSF 2.x的升级路径变得更加容易。另见a.o. Migrating from JSF 1.2 to JSF 2.0Why Facelets is preferred over JSP as the view definition language from JSF2.0 onwards?