2010-08-23 44 views
0

我试图避免使用c:forEach,因为我听说JSTL不能很好地融入JSF的渲染阶段......我不是完全可以肯定这一说法。相反,我不得不求助于使用c:forEach而不是ui:在很多情况下重复使用,因为ui:repeate根本不会在集合上进行迭代。这在许多情况下发生,我无法隔离原因,并且在所有这些案例c:forEach是一个非常好的替代品。我的问题是关于c:forEach表现不佳的一种情况,并且ui:repeat没有从集合中返回任何东西(即使它重复装饰html标签的次数)。c:forEach vs ui:repeat(又名ice:panelSeries)

会发生什么情况是,C中创建有时JSF组件:得到的forEach散落各地的页面,留在C车体装饰HTML标签:的forEach空和获得其中的页面呈现别的。这只会发生一些时间,特别是在使用F5进行刷新时(大部分时间使用Ctrl + F5进行后续刷新)。

我完全困惑,并会感激任何想法正在发生什么..为什么是用户界面:重复(和冰:panelSeries)不回收集合中的值?为什么c:for each散射是遍布整个地方的内容(看起来像构建JSF组件树时的竞态条件..也许渲染应该等待c:forEach,而不是)?为什么只有在这种情况下才会发生?

对不起,我不包括任何代码片段或屏幕截图,因为我不知道要包含什么......问题太笼统了。但是你可以相当保守,我的语法是正确的......我已经检查过......而且我不使用状态变量(这在ui中导致太多麻烦:重复)。

+0

来吧..请提供一个例子: 这发生在很多情况下,我不能孤立原因 – Dejell 2010-08-23 12:25:57

回答

1

UI:repeate根本不上 遍历集合

下面的代码工作:

<ui:repeat value="#{myCollection}" var="item"> 
    <h:outputText value="#{item}" /> 
</ui:repeat> 

为什么会在这种情况下才会发生?

this case一个例子很难知道..

然而,c:forEach vs ui:repeat document可以帮助你找到一个理由。

相关问题