我正在尝试使用 JSF tomahawk 创建世界上最简单的数据表,如下所示:
<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>
我只是想知道为什么数据表没有显示?如何让它显示在屏幕上?