次のように 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}"/>
がリストが空ではないことを示しているためです。
これは、Web ブラウザー ソースからの出力からわかります。
<t:dataTable id="dt1" value="[Lcom.foo.MyData;@1798a6c" var="item">
<t:column>
<t:outputText value=""></t:outputText>
</t:column>
</t:dataTable>
なぜデータ テーブルが表示されないのか知りたいのですが。画面に表示させる方法は?