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?
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
Cuchulainn Geschrieben 18. August 2008 Autor Geschrieben 18. August 2008 Vielen Dank. Es hat funktioniert Kann ich den Thread irgendwie auf gelöst setzen?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden