質問
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 ? ' ' : 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">
 
</td>
</tr>
</ui:repeat>
</table>
編集:これは試していませんが、最初の例(<=>)を<=>で囲んで繰り返し要素をレンダリングできるはずです。 <=>は、<=>の前に処理されます。動作するはずです。
他のヒント
テーブルをどのようにレンダリングしたいかを理解していない。テーブルのJSFコードを提供できれば助かります...
ただし、この点に関して:
データが空白の場合、そのままにしておく必要があります それのためのスペースと次を印刷 次の行の値
おそらく次のようなものを試すことができます:
<h:outputText value="#{empty aRecord.name ? ' ' : aRecord.name}"/>
このコードは、レコードの名前が空の場合、壊れないスペースをレンダリングします。それ以外の場合、レコードのname
をレンダリングします。