2009-09-10 56 views
1

顯示數據我想用在JSF 的h:dataTable標籤我顯示的數據必須是在這樣的格式來顯示數據:使用JSF的dataTable

Name: XXXX 
ID: 8989 
Age: 32 

我已經看到了網絡上的幾個例子是告訴你如何顯示 數據是這樣的:

名稱ID年齡 XXX 8989 32

由於dataTable標籤只有一個子標籤h:column和NO h:row我對此有 問題。有一個更好的方法嗎?我已經使用h:datableh:column實現了我提到的第一個 格式,所以首先我寫出列1中的所有列標題,然後寫出列2中的所有值。我面臨的問題是,當其中一個值爲空時,下一個值將被打印到它的位置,並且數據顯示錯誤,這實際上是一個格式問題。當數據爲空時,它應該爲它留出空間,然後在下一行打印下一個值。 希望我有道理,任何想法都將不勝感激。


我嘗試添加以下:

<h6><h:outputText value="#{empty imeiInfo.userEmail ? '&#160;' : imeiInfo.userEmail}"></h:outputText></h6><br/> 

但在這一個語法錯誤,我想不通,我得到的消息是:

語法錯誤在EL

任何想法?謝謝。

回答

3

它只是用於非重複數據嗎?如果是這樣,使用<h:panelGrid>

例如:

<h:panelGrid columns="2"> 
    <h:outputText value="Name:"/> 
    <h:outputText value="#{person.name}"/> 
    <h:outputText value="ID:"/> 
    <h:outputText value="#{person.id}"/> 
    <h:outputText value="Age:"/> 
    <h:outputText value="#{person.age}"/> 
</h:panelGrid> 

如果是重複數據(即多「人」),那麼你有許多取決於你使用的其他庫選項。例如:

1:使用Facelets構建您自己的表<ui:repeat>(您可以使用<c:for>執行相同操作)。例如:

<table> 
    <ui:repeat value="#{myBean.persons}" var="person"> 
     <tr> 
      <td> 
       <h:outputText value="Name:"/> 
      </td> 
      <td> 
       <h:outputText value="#{person.name}"/> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <h:outputText value="ID:"/> 
      </td> 
      <td> 
       <h:outputText value="#{person.id}"/> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       <h:outputText value="Age:"/> 
      </td> 
      <td> 
       <h:outputText value="#{person.age}"/> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2"> 
       &#160; 
      </td> 
     </tr> 
    </ui:repeat> 
</table> 

編輯:我沒有用<c:for>嘗試這樣做,但你應該能夠環繞在第一個例子(<h:panelGrid>)來呈現重複元素。 <c:for><h:panelGrid>之前得到處理。應該管用。

0

我不確定要了解如何渲染表格。我認爲這將幫助我們,如果你能提供你的表的JSF代碼...

然而,關於這一點:

當數據是空白的它應該離開 空間,然後打印下一行

在明年 價值也許你可以嘗試這樣的事情:

<h:outputText value="#{empty aRecord.name ? '&#160;' : aRecord.name}"/> 

如果記錄的名稱爲空,此代碼將呈現牢不可破的空間,否則將渲染記錄的name