Veröffentlicht 17. August 200817 j 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?
18. August 200817 j 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
18. August 200817 j Vielen Dank. Es hat funktioniert Kann ich den Thread irgendwie auf gelöst setzen?
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.