我试图避免使用c:forEach,因为我听说JSTL没有很好地融入JSF的呈现阶段.我一点也不确定那个说法。相反,在许多情况下,我不得不使用c:forEach代替ui:repeate,因为ui:repeate简单地不对集合进行迭代。在许多情况下发生了这种情况,我无法分离原因,在所有这些情况下,c:forEach是一个非常好的替代。我的问题是关于c:forEach行为不佳的一种情况,而ui:repeat不返回集合中的任何内容(尽管它重复了修饰的html标记正确的次数)。
有时,在c:forEach中创建的JSF组件会分散在整个页面上,在c:forEach的正文中留下装饰HTML标记,然后在页面的其他位置呈现。这种情况只发生过几次,特别是在使用F5进行刷新时(大多数情况下,使用Ctrl+F5进行后续刷新时都会修复这种情况)。
我完全不知所措,很想知道发生了什么事。为什么ui:repeat (和ice:panelSeries)不能从集合中取回值?为什么是c:因为每个散射都是内容遍布各地(在构建JSf组件树时似乎是一种竞赛条件)。也许呈现应该等待c:forEach,而它没有)?为什么只发生在这种情况下?
很抱歉,我没有包括任何代码片段或屏幕截图,因为我不知道应该包括什么。这个问题太笼统了。但你可以相信我的语法是正确的..。我已经查过了。我也不使用status变量(这会在ui中造成太多麻烦:重复)。
发布于 2010-08-23 12:29:23
ui:repeate只是不对集合进行迭代
以下代码起作用:
<ui:repeat value="#{myCollection}" var="item">
<h:outputText value="#{item}" />
</ui:repeat>
为什么只发生在这种情况下?
如果没有this case
的例子,就很难知道。
然而,c:forEach vs ui:重复文档可能会帮助您找到一个原因。
https://stackoverflow.com/questions/3547240
复制相似问题