2010-07-29 21 views
13

JSF'de, h:dataTable ve h:panelGrid her ikisi de html oluşturmak table -tags.JSF: h: dataTable ve h: panelGrid

Her ikisi arasındaki fark nedir?

Birini veya diğerini ne zaman kullanmalısınız?

+5

Somunlarda: dinamik tablo için 'h: dataTable' ve statik tablo için' h: panelGrid' kullanın. – BalusC

cevap

15

Adından da anlaşılacağı gibi, uygulamanızdaki bazı modellerden veri içeren bir tablo görüntülemek için h:dataTable çoğunlukla kullanılır.

  <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:panelGridHere is an usage example. düzeni ve elemanlar amacıyla yerleştirme için en çok kullanılır. 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> 
3

Eğer görüntülemek istediğiniz satır ve sütun sayısını bilmek ne zaman, el (tüm alt bileşenlerini kendini tanımlamak zorunda Sen, panelGrid tarafından herhangi satır/collumns eklemek olmayacak bir panelGrid kullanmalıdır kendisi) ve panelGrid onları düzenleyecektir. Diğer taraftan DataGrid, belirli bir boyuta sahip bir veri yapısına (koleksiyon gibi) sahip olduğunuzda kullanılır, daha sonra yazdırmak istediğiniz sütunları belirtmeniz gerekir ve dataGrid her koleksiyon için bir satır oluşturarak bu koleksiyon üzerinde yinelenir .