Cuchulainn Geschrieben 17. August 2008 Geschrieben 17. August 2008 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? Zitieren
Alive3000 Geschrieben 18. August 2008 Geschrieben 18. August 2008 du schreibst in die jsf: <f:param name="test" value="(der parameter der übergeben werden soll)"/> das ganze Konstrukt schreibst du in den commandlink oder commandbutton(hoffe es geht auch mit diesem) dann rufst du im handler: public void deleteCulture(ActionEvent actionEvent) { Map test=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); String param= (String) test.get("test").toString(); } Nun hast du im Handler die Möglichkeit mit dem String param weiter zu arbeiten Zitieren
Cuchulainn Geschrieben 18. August 2008 Autor Geschrieben 18. August 2008 Vielen Dank. Es hat funktioniert Kann ich den Thread irgendwie auf gelöst setzen? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.