3

有没有任何方法可以在不使用任何第三方组件的情况下迭代 JSF 1.2 中的列表?我知道我可以使用 Tomahawk 做到这一点。我也知道可以使用 JSTL 来完成,但我将其作为最后的手段。我也不能使用<ui:repeat>,因为我们使用的是 JSF 1.2。在 jsf 1.2 中有什么优雅的方法<ui:repeat>吗?

4

1 回答 1

8

唯一可以迭代 a的JSF 1.2 组件List<h:dataTable>.

在 JSP 中,唯一可以迭代 a 的其他“标准”(即不是“第 3 方”)标记List是 JSTL <c:forEach>List如果您想要迭代的对象在视图构建期间已经可用,那么使用 JSTL 应该不会造成太大的伤害。只有当它仅在视图渲染期间可用时,您才会遇到麻烦,例如因为它嵌套在 a 中<h:dataTable>并且应该迭代 table 的属性var。由于在 JSF2 Facelets中的 JSTL 中也提到了原因,这只是行不通……有意义吗?

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

然而,可以将 Facelets 1.x 集成到 JSF 1.2 中。Facelets 1.x 文档手册中描述了指南。如果您已经有一个使用 JSP 作为视图技术的现有 JSF 应用程序,那么这只会是相当多的工作;您需要将 JSP 转换为 Facelets。但它最终将使 JSF 2.x 的升级路径变得更加容易。另请参阅 ao从 JSF 1.2 迁移到 JSF 2.0以及为什么从 JSF2.0 开始,Facelets 优于 JSP 作为视图定义语言?

于 2012-10-02T19:28:05.160 回答