Hallo alle zusammen,
ich habe eine jsf-Seite mit einer Tabelle. Hinter jedem Eintrag sind eine Löschen- und eine Editieren-Schaltfläche. Wenn der Benutzer nun "löschen" drückt, soll der entsprechende Datensatz gelöscht werden. Mein Problem ist nun: Wie sage ich dem ActionListener (der dann Hibernate aufruft), welcher Datensatz gelöscht werden soll?
Das ist meine JSP-Seite:
<f:view>
<f:loadBundle basename="Language" var="msgs" />
<h:form>
<h:messages />
<h:dataTable id="cultures" value="#{cultureService.cultureList}" var="row">
<h:column>
<f:facet name="header">
<h:outputText value="Id"/>
</f:facet>
<h:outputText id="cultureId" value="#{row.cultureId}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Kulturname"/>
</f:facet>
<h:outputText value="#{row.cultureName}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Actions"/>
</f:facet>
<h:commandButton value="Ändern" action="editCulture" />
[B]<h:commandButton value="Löschen" action="listCultures" actionListener="#{culture.deleteCulture}" />[/B]
</h:column>
</h:dataTable>
<br />
<h:commandButton action="addCulture" value="Add Culture" />
</h:form>
</f:view>
Ich habe die Zeile für dei Löschen-Schaltfläche fett gedruckt. Und hier ist mein ActionListener in der Bean:
public void deleteCulture(ActionEvent actionEvent) {
try {
CultureService.deleteCulture(getCultureId());
} catch (Exception e) {
}
}
Der Listener wird korrekt aufgerufen. Wenn ich deleteCulture() einen festen Wert übergebe (z.B. CultureService.deleteCulture(3); ), wird genau dieser Datensatz gelöscht. Wie aber kann ich ihm klar machen, dass er genau die angewählte Zeile löschen soll?