バッキングBeanのh:selectManyListbox、h:selectManyMenu、h:selectManyCheckbox、p:selectManyListbox、p:selectManyMenu、p:selectManyCheckboxなどのUISelectManyコンポーネントから選択したすべての値を収集するにはどうすればよいですか?
誰かが例を手伝ってくれるなら、それは本当に助けになるでしょう。
バッキングBeanのh:selectManyListbox、h:selectManyMenu、h:selectManyCheckbox、p:selectManyListbox、p:selectManyMenu、p:selectManyCheckboxなどのUISelectManyコンポーネントから選択したすべての値を収集するにはどうすればよいですか?
誰かが例を手伝ってくれるなら、それは本当に助けになるでしょう。
他のすべての入力コンポーネントと同様に、そのvalue
属性をマネージドBeanプロパティにバインドするだけです。List
で使用したのと同じ値型のまたは配列にマップできますf:selectItem(s)
。値の型が標準のEL型(、、または)のいずれでもないString
場合Number
はBoolean
、も指定する必要がありConverter
ます。
String
値型が次の例を次に示します。
<h:selectManyListbox value="#{bean.selectedItems}">
<f:selectItems value="#{bean.availableItems}" />
</h:selectManyListbox>
<h:commandButton value="Submit" action="#{bean.submit}" />
と
public class Bean {
private Map<String, String> availableItems; // +getter (no setter necessary)
private List<String> selectedItems; // +getter +setter
@PostConstruct
public void init() {
availableItems = new LinkedHashMap<String, String>();
availableItems.put("Foo label", "foo");
availableItems.put("Bar label", "bar");
availableItems.put("Baz label", "baz");
}
public void submit() {
System.out.println(selectedItems); // It's already set at that point.
}
// ...
}