Ui:repeat和c:foreach返回的组织不相同



我有一个包含属性列表的循环我想在2列上显示这个列表,但是我不能。如果我对ui: repeat的每个位置使用c:,它们将按unordered显示问题解决

<p:panel id="panlecart2" header ="Caracteristique selon la categorie" toggleable="true" rendered="true" style="width=900px;">            
            <h:panelGrid  id="panlecart" columns="2" cellpadding="5" rendered="true" style="width=900px;">                         
            <ui:repeat var="var1" value="#{composantbean.categorie.proprietes.toArray()}">            
            <h:outputText value="#{var1.nomProp }(#{var1.unite}  )"  />
            <h:inputText value="" />  
            </ui:repeat>             
         </h:panelGrid>
          </p:panel>   

如何解决这个问题,请帮助:)

您可以切换到使用<h:dataTable>来遍历组件:

<h:dataTable var="var1" value="#{composantbean.categorie.proprietes.toArray()}">
    <h:column>
        <h:outputText value="#{var1.nomProp }(#{var1.unite}  )"  />
    </h:column>
    <h:column>
        <h:inputText value="" />  
    </h:column>
</h:dataTable>

将其封闭在<p:panel>中以使其工作。否则,使用<c:forEach>,因为它很适合您的用例。

ui:repeatc:forEach之后的阶段呈现。这里有一个解释。

c:forEach是这里的方法,因为这是在视图构建时调用的。

ui:repeat在视图呈现期间被调用,因此p:panel将不知道ui:repeat正在创建的数据。

相关内容

  • 没有找到相关文章

最新更新