4

を使用して (ループ内で) テーブルの動的 ID 属性を作成する最良の方法は何<h:dataTable>ですか?

以下を使用します。

  • JSF1.2
  • JSP
  • サン アプリケーション サーバー 9.0_01
  • JSTL1.1

8 つのテーブルを含むページがあります。

各テーブルには一意の ID 属性が必要です

テーブルは、テーブル データを含む要素を含む Map を反復処理することによって描画されます。

テーブルの ID 属性を定義するときは、Map のキーを使用する必要があります。

例:

マップにこれらのキーが含まれている場合: Dog, Cat, Mouse, Bird

理想的には、テーブルの ID 属性を次のようにしたいと考えています。dog-table, cat-table, mouse-table, bird-table

ランダムなものも同様に機能します:t1-table, t2-table, t3-table

の ID 属性は<h:dataTable>EL 式を許可しません (そのため、マップ キーに直接アクセスできません)。

ID 属性を作成する最良の方法は何ですか?

2 つのアプローチが思い浮かびますが、どちらもハックに見えます。

  1. スクリプトレットまたは JSP 値式を使用する

  2. jQuery を使用して、各テーブルに一意の ID を割り当てます (レンダリング後と処理前)。

最終的な目標は、jqGrid を使用してこれらのテーブルを表示することです (したがって、とにかく jQuery を使用しています)。

どんな助けでも素晴らしいでしょう...


ノート:

Map の反復処理をシミュレートするためにヘルパー クラスを使用しています (これは JSF 1.2 では実行できないため)。

Map を実際に反復処理する代わりに、名前とを持つオブジェクトの List を生成しList<Foo>ます。

名前はキーを表し、リストはテーブルの行を表します。


編集

最終的に<h:dataTable>、このシナリオで独自の一意の ID を生成することに気づきました。

生成された名前は私の問題を解決するのに十分です...

私のページは機能していますが、今後この状況にどのように対処するかについてはまだ興味があります.

4

1 に答える 1

1

私はこれがあなたを助けると思う...

${} 構文を使用するすべての式は、すぐに評価されます。これらの式は、テンプレート テキスト内でのみ、またはランタイム式を受け入れることができるタグ属性の値として使用できます。

   id="${data.map}-table
于 2013-04-19T03:28:27.113 に答える