I am trying to update a database entry.
When clicking on the edit button, the page just reloads and changes aren't saved and just reset.
When printing content of _speise to the console. the old value is printed, and not the one I wanted to change it to.
My Code:
SpeiseBean:
public void updateSpeise(ActionEvent event){
Speise _speise = (Speise) event.getComponent().getAttributes().get("speise");
speiseManager.updateSpeise(_speise);
}
xhtml page:
<h:form>
<h:dataTable value="#{SpeiseBean.speisen}" var="speise">
<h:column>
<f:facet name="header">Name</f:facet>
<h:inputText value="#{speise.name}"/>
</h:column>
<h:column>
<f:facet name="header">Tag</f:facet>
<h:selectOneMenu value="#{speise.merkmal}">
<f:selectItem itemValue="Mon"/>
<f:selectItem itemValue="Tue"/>
<f:selectItem itemValue="Wed"/>
<f:selectItem itemValue="Thu"/>
<f:selectItem itemValue="Fri"/>
</h:selectOneMenu>
</h:column>
<h:column>
<f:facet name="header">Preis</f:facet>
<h:inputText value="#{speise.preis}"/>
</h:column>
<h:column>
<f:facet name="header">Beschreibung</f:facet>
<h:inputText value="#{speise.beschreibung}"/>
</h:column>
<h:column>
<f:facet name="header">Merkmal</f:facet>
<h:selectOneMenu value="#{speise.merkmal}">
<f:selectItem itemValue="Nichts"/>
<f:selectItem itemValue="vegan"/>
<f:selectItem itemValue="vegetarisch"/>
<f:selectItem itemValue="laktosefrei"/>
<f:selectItem itemValue="glutenfrei"/>
</h:selectOneMenu>
</h:column>
<h:column>
<f:facet name="header">Bewertung</f:facet>
<h:inputText value="#{speise.bewertung}"/>
</h:column>
<h:column>
<f:facet name="header">Aktion</f:facet>
<h:commandButton value="Edit" actionListener="#{SpeiseBean.updateSpeise}">
<f:attribute name="speise" value="#{speise}"/>
</h:commandButton>
</h:column>
<h:column>
<f:facet name="header">Aktion</f:facet>
<h:commandButton value="Delete" action="#{SpeiseBean.deleteSpeise(speise)}"/>
</h:column>
</h:dataTable>
</h:form>