1

我正在尝试使用 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>

我只是想知道为什么数据表没有显示?如何让它显示在屏幕上?

4

1 回答 1

1

对不起我的不好。我的类路径中也没有包含 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">
于 2012-09-06T03:13:44.033 回答