2012-09-04 50 views
1

我試圖創造世界上最簡單的dataTable使用JSF戰斧這樣的:爲什麼JSF tomahawk dataTable不顯示?

<html 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:t="http://myfaces.apache.org/tomahawk"> 
<h:head> 
    <title></title> 
</h:head> 
    <h:body> 
    <h:form id="theForm"> 
     <h:outputText value="#{theBean.theList eq null}"/> 
     <t:dataTable id="dt1" value="#{theBean.theList}" var="item"> 
      <t:column> 
      <f:facet name="header"> 
       <t:outputText value="Header A"/> 
      </f:facet> 
      <t:outputText value="#{item.itemA}"/> 
      </t:column> 
     </t:dataTable> 
    </h:form> 
    </h:body> 
</html> 

上面的代碼是保存爲XHTML文件。 bean類是這個樣子:

@ManagedBean(name="theBean") 
@SessionScoped 
public class MyBean { 
    private MyData[] theList = new MyData[] { 
     new MyData("1111", "", "", "")}; 

    public MyData[] getTheList() { 
    return theList; 
    } 

    public void setTheList(MyData[] theList) { 
    this.theList = theList; 
    } 
} 

public class MyData { 

    private String itemA; 

    ... 
    ... 
} 

在屏幕上我沒有看到數據表的輸出,我看到一個黑色的顏色false字和白色空白屏幕,這是由於該代碼<h:outputText value="#{theBean.theList eq null}"/>說服力我這個名單不是空的。

我看到這個從網絡瀏覽器源輸出:

<t:dataTable id="dt1" value="[Lcom.foo.MyData;@1798a6c" var="item"> 
    <t:column> 
    <t:outputText value=""></t:outputText> 
    </t:column> 
</t:dataTable> 

我只是好奇,想知道爲什麼數據表不顯示?如何使它顯示在屏幕上?

+2

在客戶端檢查JSF生成的HTML輸出(在瀏覽器中打開頁面,右鍵單擊*查看源*)。 ''是否被解析? – BalusC

+0

你是通過解析還是不解釋?如果我看到或看不到它是什麼意思? – huahsin68

+0

在chrome上右鍵單擊頁面,並使用inspect元素檢查輸出的html,看看是否可以看到數據表的ID爲 – PermGenError

回答

1

對不起,我的壞。我沒有在我的classpath中包含tomahawk jar和其他依賴項。一旦我將它們放在我的類路徑中,dataTable就會呈現在網頁上。我注意到,位於頁面頂部的戰斧線上的警告消失了。

<html 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:t="http://myfaces.apache.org/tomahawk">