1

次のように 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>

なぜデータ テーブルが表示されないのか知りたいのですが。画面に表示させる方法は?

4

1 に答える 1

1

私の悪いことを申し訳ありません。トマホーク jar やその他の依存関係もクラスパスに含めませんでした。それらをクラスパス内にdataTable配置すると、Web ページにレンダリングされます。そして、ページの上部にあるトマホーク ラインの警告が消えていることに気付きました。

<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 に答える