JSF selectOneListbox speichert Value nicht.

Dieses Thema JSF - selectOneListbox speichert Value nicht. im Forum "Web Tier" wurde erstellt von Rallenaldo, 26. Mai 2015.

Thema: selectOneListbox speichert Value nicht. Hallo. Folgendes Szenario. Ich habe ein selectOneListbox-Menü und will ja nach Auswahl ein anderes...

  1. 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 (Text):

    <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:

    Code (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: 26. Mai 2015
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. 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