質問

JSFでh:dataTableタグを使用してデータを表示したい 表示するデータは、次のような形式である必要があります。

Name:   XXXX
ID:  8989
Age:    32

ウェブ上でいくつかの例をご覧になりました。 このようなデータ:

名前ID年齢     XXX 8989 32

dataTableタグにはサブタグh:columnとNO h:rowのみがあるため、 これに関する問題。これを行うためのより良い方法はありますか?私は最初を実装しました h:datableと<=>を使用して説明した形式なので、最初に列1のすべての列ヘッダーを書き、次に列2のすべての値を書きます。私が直面している問題は、値の1つが空白の場合、次の値がその場所に印刷され、データが間違っているように見えることです。これは実際にはフォーマットの問題です。データが空白の場合、データ用のスペースを残してから、次の行に次の値を出力する必要があります。 私が理にかなっていることを願っています、どんな考えでも大歓迎です。


以下を追加しようとしました:

<h6><h:outputText value="#{empty imeiInfo.userEmail ? '&#160;' : imeiInfo.userEmail}"></h:outputText></h6><br/>

しかし、これには構文エラーがあり、私にはわかりません。私が受け取るメッセージは次のとおりです。

  

ELの構文エラー

アイデアはありますか?ありがとう。

役に立ちましたか?

解決

繰り返しのないデータ専用ですか?その場合は、<h:panelGrid>

を使用します

例:

<h:panelGrid columns="2">
   <h:outputText value="Name:"/>
   <h:outputText value="#{person.name}"/>
   <h:outputText value="ID:"/>
   <h:outputText value="#{person.id}"/>
   <h:outputText value="Age:"/>
   <h:outputText value="#{person.age}"/>
</h:panelGrid>

繰り返しデータ(つまり、複数の「人」)の場合、使用している他のライブラリに応じて、いくつかのオプションがあります。例:

1:Facelets <ui:repeat>を使用して独自のテーブルを構築します(<c:for>でも同じことができます)。例:

<table>
    <ui:repeat value="#{myBean.persons}" var="person">
        <tr>
           <td>
              <h:outputText value="Name:"/>
           </td>
           <td>
              <h:outputText value="#{person.name}"/>
           </td>
        </tr>
        <tr>
           <td>
              <h:outputText value="ID:"/>
           </td>
           <td>
              <h:outputText value="#{person.id}"/>
           </td>
        </tr>
        <tr>
           <td>
              <h:outputText value="Age:"/>
           </td>
           <td>
              <h:outputText value="#{person.age}"/>
           </td>
        </tr>
        <tr>
           <td colspan="2">
              &#160;
           </td>
        </tr>
    </ui:repeat>
</table>

編集:これは試していませんが、最初の例(<=>)を<=>で囲んで繰り返し要素をレンダリングできるはずです。 <=>は、<=>の前に処理されます。動作するはずです。

他のヒント

テーブルをどのようにレンダリングしたいかを理解していない。テーブルのJSFコードを提供できれば助かります...

ただし、この点に関して:

  

データが空白の場合、そのままにしておく必要があります   それのためのスペースと次を印刷   次の行の値

おそらく次のようなものを試すことができます:

<h:outputText value="#{empty aRecord.name ? '&#160;' : aRecord.name}"/>

このコードは、レコードの名前が空の場合、壊れないスペースをレンダリングします。それ以外の場合、レコードのnameをレンダリングします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top