JSF selectOneMenu selectItem immer null
-
22-09-2019 - |
Frage
Ich versuche, einen JSF selectOneMenu Artikel mit einem Backing Bean Halt zu implementieren die Auswahl. Das Problem ist, dass die selectedItem ist immer null. Hier der Code:
.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;
}
}
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>
Ich bin mit der Sonne Implementierung (Version 1.2). Das Problem tritt auf Jetty 6 und WebSphere 6.1.
Kann jemand mir helfen mit diesem Problem?
Christian
Lösung
Ich habe etwas vergessen: Ich habe eine <h:form>
und ich hatte folgendes zu tun:
<h:selectOneMenu
value="#{componentFilterBean.selectedItem}"
immediate="true" onchange="javascript: return this.form.submit();">
<f:selectItems value="#{componentFilterBean.projects}" />
</h:selectOneMenu>
Was ich nicht verstehe, ist, dass in den Beispielen im Netz, niemand tut es so.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow