JSF selectOneListbox speichert Value nicht.

Rallenaldo

Mitglied
Hallo.

Folgendes Szenario. Ich habe ein selectOneListbox-Menü und will ja nach Auswahl ein anderes selectOneListbox-Menü befüllen. Da hierfür nicht jedes Mal das komplette Formular übermittelt werden soll, muss das Problem mit Ajax gelöst werden.

Ich habe bisher folgenden Code:

XHTML-Seite:

Code:
<ui:composition template="./../META-INF/templates/template.xhtml"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:f="http://xmlns.jcp.org/jsf/core">

<ui:define name="content">

<h:form >
            <h:selectOneListbox id="selectOneListbox1AddItem" value="#{categoryController.company}">
                <f:selectItems value="#{categoryController.selectOneListBox1}" var="comp" itemLabel="#{comp.companyName}" itemValue="#{comp}"/>
                <f:ajax listener="#{categoryController.valueChanged1}" />
            </h:selectOneListbox>
            
            <h:selectOneListbox id="selectOneListbox2AddItem">
                <f:selectItems value="#{categoryController.selectOneListBox2}"/>
            </h:selectOneListbox>
</h:form>

</ui:define>

</ui:composition>

CategoryController:

Java:
@Named
@ViewScoped
public class CategoryController implements Serializable {

private static final long serialVersionUID = 5639623356569403812L;

private List<Company> selectOneListBox1;
private List<Company> selectOneListBox2;

private Company company;

// Getter & Setter

public void valueChanged1(AjaxBehaviorEvent event) {

System.out.println("Input:" + company.getCompanyName());

}

...

Mein Problem ist, dass aktuell die Methode valueChanged1 nicht aufgerufen wird, und sollte ich es doch geschafft haben, dass diese aufgerufen wird, bekomme ich einen NullPointerException.

Ich habe auch im Internet schon stundenlang nach einer Lösung gesucht und vor allem die Vorschläge von StackOverflow ausprobiert, allerdings ohne jeglichen Erfolg. Ich finde meinen Fehler nicht...
 
Zuletzt bearbeitet:

Dirk S

Mitglied
hm, also ich denke valueChanged1 wird aufgerufen, bevor die SetterMethode aufgerufen wird und damit ist die gewählte Variable noch nicht im Bean gesetzt.
Der AjaxBehaviourEvent wiederum hat eine Methode ich glaube getSource() und darauf dann getValue mit der du die Auswahl abfragen kannst
 

Ähnliche Java Themen

Neue Themen


Oben