2010-01-26 87 views
2

我試圖實現一個JSF selectOneMenu項目與支持豆持有 選擇。問題是selectedItem始終爲空。這裏 是代碼:JSF selectOneMenu selectItem始終爲空

.xhtml:

<h:selectOneMenu 
    value="#{componentFilterBean.selectedItem}"> 
    <f:selectItems value="#{componentFilterBean.projects}" /> 
    </h:selectOneMenu> 

豆:

public class ComponentFilterBean { 

String selectedItem = null; 

private List<SelectItem> selectItems = null; 

public String getSelectedItem() { 
    System.out.println("getSelectedItem = " + selectedItem); 
    return selectedItem; 
} 

public void setSelectedItem(String selectedItem) { 
    this.selectedItem = selectedItem; 
    System.out.println("setSelectedItem = " + selectedItem); 
} 

public List<SelectItem> getProjects() { 
    if (selectItems == null) { 
    selectItems = new ArrayList<SelectItem>(); 
    selectItems.add(new SelectItem("Project1", "Project1")); 
    selectItems.add(new SelectItem("Project2", "Project2")); 
    selectItems.add(new SelectItem("Project3", "Project3")); 
    } 

    return selectItems; 
} 
} 

faces-config.xml中:

<managed-bean> 
    <managed-bean-name>componentFilterBean</managed-bean-name> 
    <managed-bean-class>test.ComponentFilterBean</managed-bean-class> 
    <managed-bean-scope>request</managed-bean-scope> 
</managed-bean> 

我使用的是Sun實現(版本1.2)。該問題出現在Jetty 6 和WebSphere 6.1上。

有人可以幫我解決這個問題嗎?

基督教

+0

是調用者? (即,在控制檯上印有任何東西)。 此外,請添加標記,以便可以看到任何驗證錯誤 – Bozho 2010-01-26 08:58:41

+0

調用者被調用,它將打印爲空。 我添加到頁面: 沒有錯誤顯示。 – Christian 2010-01-26 09:53:59

+1

你有''嗎? – Bozho 2010-01-26 10:23:01

回答

2

我忘了什麼事:我添加了一個<h:form>,我必須做到以下幾點:

<h:selectOneMenu 
    value="#{componentFilterBean.selectedItem}" 
    immediate="true" onchange="javascript: return this.form.submit();"> 
    <f:selectItems value="#{componentFilterBean.projects}" /> 
</h:selectOneMenu> 

我不明白的是,在網絡上的例子,沒有人可以那樣。

+0

..因爲它太明顯了。您無法在沒有表格的情況下提交表格。 – BalusC 2010-01-28 11:53:55