2010-02-10 71 views

回答

6

與每UIInput組件,您只需將value屬性與後臺bean的屬性綁定。因此,所以:

<h:form> 
    <h:selectManyListbox value="#{bean.selectedItems}"> 
     <f:selectItems value="#{bean.selectItems}" /> 
    </h:selectManyListbox> 
    <h:commandButton value="submit" action="#{bean.submit}" /> 
</h:form> 

Bean類以下內容:

private List<String> selectedItems; // + getter + setter 
private List<SelectItem> selectItems; // + getter only 

public Bean() { 
    // Fill select items during Bean initialization/construction. 
    selectItems = new ArrayList<SelectItem>(); 
    selectItems.add(new SelectItem("value1", "label1")); 
    selectItems.add(new SelectItem("value2", "label2")); 
    selectItems.add(new SelectItem("value3", "label3")); 
} 

public void submit() { 
    // JSF has already put selected items in `selectedItems`. 
    for (String selectedItem : selectedItems) { 
     System.out.println("Selected item: " + selectedItem); // Prints value1, value2 and/or value3, depending on selection. 
    } 
} 

如果你想使用非標準的對象作爲SelectItem值(即不是StringNumberBoolean爲其EL具有已經內置強制),那麼你必須爲此創建一個Converter。更多詳細信息請參見this blog article

+0

當我將一個列表分配給selectManyListbox中的值時,我收到以下警告。 無法將類型java.util.List強制爲java.lang.String,java.lang.Short,java.lang.Character, java.lang.Boolean,java.lang.Double,java.lang.Byte,java。 lang.Long,java.lang.Float, java.lang.Integer – Hariharbalaji 2010-02-10 13:57:56

+0

我正在使用MyEclipse編輯器 – Hariharbalaji 2010-02-10 13:58:13

+1

忽略並運行它。在涉及到JSF/JSP/EL驗證時,Eclipse是史詩般的失敗。 – BalusC 2010-02-10 14:24:43

2

<h:selectManyListBox value="#{managedBean.list}">

,並在託管bean:

private List list; 

(用適當的getter和setter,以及可能的,如果 - 使用泛型)

相關問題