2010-01-29 100 views
1

我使用c:forEach里面rich:dataTable。但c:forEach不会替代answer.choices变量的值,因此不会呈现任何内容。在rich:dataTable中使用c:forEach是错误的吗?c:forEach不渲染丰富内容:dataTable

+0

来自昨天的类似问题和答案:http://stackoverflow.com/questions/2151476/backing-bean-string-access-in-jsf/2154159#2154159 – BalusC 2010-01-29 16:13:51

回答

8

是的,这是行不通的 - 不使用JSTL标签UI组件迭代里面(dataTable,例如)。

使用<ui:repeat><a4j:repeat>代替<c:forEach>里面一个dataTable

重复这些标签的签名是有一点不同:

<a4j:repeat value="#{bean.items}" var="item"> 
    <h:outputText value="#{item}" /> 
</a4j:repeat> 
+0

@Bozho很高兴知道(+1)。但是我应该在哪里避免在Java Server Faces中使用JSTL? – 2010-01-29 16:09:37

+3

从JSTL中只有'functions' taglib在JSF中实际上很有用。在JSF中,JSTL'core'和'fmt' taglibs是多余的,因为JSF自己已经有了相同的方法。此外,JSTL'xml'和'sql' taglibs仅用于快速原型设计,没有商业价值。 – BalusC 2010-01-29 16:16:08

+0

@BalusC谢谢BalusC – 2010-01-29 18:20:59

1

你应该知道的编译时间与渲染时间标签在jsf中。理解这种组合无法工作的原因是关键。