2010-01-26 2 views
2

Я пытаюсь реализовать элемент JSF selectOneMenu с бэкэндингом, содержащим выбор. Проблема в том, что selectedItem всегда имеет значение null. Здесь это код:JSF selectOneMenu selectItem always null

.xhtml:

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

Bean:

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; 
} 
} 

лица-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> 

Я использую осуществления солнца (версия 1.2). Проблема возникает на Jetty 6 и WebSphere 6.1.

Может ли кто-нибудь помочь мне с этой проблемой?

Christian

+0

- сеттер называется? (I.e. что-то напечатано на консоли). Также добавьте тег , чтобы были видны все ошибки проверки. – Bozho

+0

Вызывается сеттер, он печатает нуль. Я добавил на страницу: Ошибок не отображается. – Christian

+1

у вас есть ''? – Bozho

ответ

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

Смежные вопросы