JSF <h:selectOneMenu> doesn't save my choose

109 Views Asked by At

I'm working with JSF and want to save a choose from a dropdown, but it doesn't save it, what can I do?

xhtml:

<h:form>
    <h:selectOneMenu value="#{spielController.ausgewaehlteKategorie}"  >
        <f:selectItems value="#{spielController.alleKategorien}"/>
    </h:selectOneMenu>
</h:form>
<br/>
<h:form>
    <h:commandButton action="#{spielController.ladeFrage()}" value="Spielen"/>
</h:form> 

BackingBean:

@Named(value = "spielController")
@SessionScoped
public class SpielController implements Serializable {

    private String ausgewaehlteKategorie;

    private ArrayList<String> alleKategorien = new ArrayList<>();

    public SpielController() throws SQLException {

        for (String kategorie : kdao.getKategorien()) {
            alleKategorien.add(kategorie);
        }
    }


    public String getAusgewaehlteKategorie() {
        return ausgewaehlteKategorie;
    }

    public void setAusgewaehlteKategorie(String ausgewaehlteKategorie) {
        this.ausgewaehlteKategorie = ausgewaehlteKategorie;
    }


    public ArrayList<String> getAlleKategorien() {
        return alleKategorien;
    }

    public void setAlleKategorien(ArrayList<String> alleKategorien) {
        this.alleKategorien = alleKategorien;
    }

}

I get the things from a DAO-class and it works, but when I press the button, it doesn't work because the choose I made above wasn't saved

1

There are 1 best solutions below

1
abosancic On

Move

<h:commandButton action="#{spielController.ladeFrage()}" value="Spielen"/>

to h:form

<h:form>
    <h:selectOneMenu value="#{spielController.ausgewaehlteKategorie}"  >
        <f:selectItems value="#{spielController.alleKategorien}"/>
    </h:selectOneMenu>
    <br/>
    <h:commandButton action="#{spielController.ladeFrage()}" value="Spielen"/>
</h:form> 

This is the reason why your setter not invoked.