代码之家  ›  专栏  ›  技术社区  ›  Jan

JSF:h:dataTable与h:panelGrid

  •  15
  • Jan  · 技术社区  · 15 年前

    在JSF中, h:dataTable h:panelGrid 两者都创建html table -标签。

    两者有什么区别?

    什么时候用这个或那个?

    3 回复  |  直到 15 年前
        1
  •  17
  •   Kalle Richter    7 年前

    h:dataTable 主要用于显示包含应用程序中某些模型的数据的表。 Here is an usage example.

    <h:dataTable value="#{dataTableBean.items}" var="item">
        <h:column>
            <f:facet name="header" >
                <h:outputText value="Item Category"/>
            </f:facet>    
            <h:outputText value="#{item.category}"/>
        </h:column>
    </h:dataTable>
    

    这个 h:panelGrid 主要用于元素的布局和放置。 Here is an usage example.

    <h:panelGrid id="panel" columns="2" border="1">
        <h:outputText value="First Name:" />
        <h:inputText id="first" value="#{backingBean.user.firstName}" />
        <h:outputText value="Last Name:" />
        <h:inputText id="last" value="#{backingBean.user.lastName}" />
    </h:panelGrid>
    
        2
  •  5
  •   McDowell rahul gupta    15 年前
        3
  •  4
  •   Mateusz Dymczyk    15 年前

    当您知道要显示的行和列的数量时,您应该使用panelGrid,您必须自己定义所有子组件(手动,panelGrid不会自己添加任何行/列),panelGrid将排列它们。 另一方面,当您有一个大小不确定的数据结构(如集合)时,使用DataGrid,然后您只需指定要打印的列,DataGrid将在该集合上迭代,为每个条目创建一行。