selectItem
タグとselectItems
タグについて
リストに単一の項目を作成するには、selectItem
タグを使用します。JSPでitemLabel
およびitemValue
属性を定義するか、またはselectItem
タグのvalue
属性を、javax.faces.model.SelectItem
インスタンスを戻すBeanのメソッドにバインドできます。
ユーザーがリストから項目を選択すると、itemValue
がリクエスト・パラメータとして送信され、対応するリスト・タグのvalue
属性の値にもなります。したがって、selectItem
のitemValue
のタイプが、対応するリストのバインド先のタイプと同じであることを確認する必要があります。
次のコードでは、selectItem
タグを使用して、ユーザーがリストから1つの部門を選択できるリストボックスを表示しています。
<h:selectOneListbox>
<f:selectItem itemLabel="Human Resources" itemValue="1"/>
<f:selectItem itemLabel="Product Development" itemValue="2"/>
<f:selectItem itemLabel="Marketing" itemValue="3"/>
<f:selectItem itemLabel="Sales" itemValue="4"/>
</h:selectOneListbox>
項目は、コードに記述されている順序でWebページ上に表示されます。ページがレンダリングされるときは、デフォルトで、リスト内の最初の項目が選択され、別の値を明示的に設定しないかぎりその項目がリストの値となります。
JSPでリスト項目を作成するかわりに、selectItems
タグを使用できます。このタグのvalue
属性は、次のいずれかにバインドする必要があります。
SelectItem
インスタンス
SelectItem
インスタンスのコレクション
SelectItem
インスタンスの配列
SelectItem
のラベルと値を表すマップ。マップ・エントリのキーが項目のラベルとして使用され、値が項目の値として使用されます。
次のJSPコードは、同じリストボックスをselectItems
タグを使用して作成する方法を示しています。
<h:selectOneListbox>
<f:selectItems value="#{employees.departments}"/>
</h:selectOneListbox>
selectItems
タグが、値バインディングを使用して、次のコードに示すemployees
マネージドBeanのdepartments
プロパティを参照していることに注意してください。
private SelectItem[] departments =
{
new SelectItem(new Integer(1), "Human Resources"),
new SelectItem(new Integer(2), "Product Development"),
new SelectItem(new Integer(3), "Marketing"),
new SelectItem(new Integer(4), "Sales")
};
public SelectItem[] getDepartments()
{
return departments;
}
項目は、selectItem
タグと同様に、コードに記述されている順序で表示されます。
Copyright © 1997, 2007, Oracle. All rights reserved.