JSF 2 の Set で特定の要素を取得したいのですが、その方法を教えてください。
2 に答える
この問題は、JSF/EL に固有のものではありません。プレーンな Java では、特定の要素にアクセスすることはできませんSet。has には has のようなSetメソッドはありません。インデックスでアクセスできるように、 を配列またはに変換する必要があります。get(index)ListSet<T>T[]List<T>
SortedSetこれは、要素がそれぞれソート順またはLinkedHashSet挿入順で挿入されるときにのみ、予測可能な方法で機能します。HashSet要素がどのインデックスで終了するかを事前に確実に予測できないため、これは意味がありません。
EL 2.2を使用している場合(質問履歴でこれが確認されています)、使用Set#toArray()して配列に変換し、ブレース表記[]を使用してインデックスで要素にアクセスできます。以下の例では、 の配列表現の 2 番目の項目を出力します#{bean.someSet}。
#{bean.someSet.toArray()[1]}
繰り返しますが、これは のような順序付けられていないセットの場合は意味がありませんHashSet。
あなたの問題はまったく不明ですが、JSF2 は実際には Set をサポートしていません。
コンポーネントは、データを表示するために常に並べ替えが必要なui:repeatためh:datatable、最初Setに変換することをお勧めしますList。