使用ui:repeat遍历列



我在Mojarra 2.1.29

我尝试遍历集合以产生等于集合大小的行数。以下是我尝试过的:

<rich:dataTable id="table"
                       var="partner"
                       rows="10"
                       value="#{testBean.k}">
    <ui:repeat var="name" value="#{testBean.cols}"> 
           <rich:column>
               <f:facet name="header">
                   <h:outputText value="#{name}"/>
               </f:facet>
               <h:outputText value="#{m.get(partner)}"/>
               <f:facet name="footer">
                   <h:outputText value="#{name}}"/>
               </f:facet>
           </rich:column>
    </ui:repeat>
</rich:dataTable>

testBean.cols的初始化如下:

public class TestBean{
    private List<String> cols = new ArrayList<>();
    public TestBean() {
        cols.add("Col 1");
        cols.add("Col 2");
    }
}

它不工作。结果得到一个包含0列的表。出了什么问题,有办法解决吗?

我已经确保表达式#{partnerListController.cols}通过将其放在标记中并获得[Col 1, Col 2]来解析为非空列表。

为什么我不能迭代这样的列表?

使用c:foreach而不是@Kukeltje建议的ui:repeat可能会工作,但是通过迭代Collection来创建动态列的正确方法宁愿使用<rich:columns>组件。

从https://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/rich_columns.html

:

<rich:columns>组件从数据模型获取列表并输出在页面的<rich:dataTable>中对应的一组列。它是否可以使用"页眉"one_answers"页脚"方面与<rich:columns>组件。

"value"one_answers"var"属性用于访问的值收集。

<rich:dataTable value="#{testBean.k}" var="partner" id="table" rows="10">
   <rich:columns value="#{testBean.cols}" var="name">
           <f:facet name="header">
               <h:outputText value="#{name}"/>
           </f:facet>
           <h:outputText value="#{m.get(partner)}"/>
           <f:facet name="footer">
               <h:outputText value="#{name}"/>
           </f:facet>>
   </rich:columns>
</rich:dataTable>

相关内容

  • 没有找到相关文章

最新更新