JSF Datatable und löschen

Status
Nicht offen für weitere Antworten.

puddah

Aktives Mitglied
Hallo,

bin gerade dabei eine Tabelle mit h:datatable zu rendern und bin dabei auf ein Problem gestoßen.
Ich möchte in jeder Zeile der Tabelle einen Button anbieten, der dem Benutzer die Möglichkeit bietet den entsprechenden Eintrag zu löschen. Ich übergebe h:dataTable eine Liste mit Beans wobei ich jedes Atteribut der Bean über eine in var angegebene Variable darstelle. Die Frage ist nun allerdings, wie ich die Daten aus der Bean an eine entsprechende Action Methode weiterleite. Hier mal die Tabelle:

Code:
		<h:dataTable
			value="#{ResourceService.employeeService.employees}" var="emp">
			<h:column>
				<f:facet name="header">
					<h:outputText value="#{msg.employee_name}" />
				</f:facet>
				<h:outputText id="name" value="#{emp.name}" />
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="#{msg.employee_forename}" />
				</f:facet>
				<h:outputText id="forename" value="#{emp.forename}" />
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="." />
				</f:facet>
				<h:form>
                                 <!-- Hier muss der Methode removeEmployee irgendwie
                                 der aktuelle Inhalt von emp bekannt gemacht werden -->
				<a4j:commandButton reRender="a4jEmployeeRegion"
					action="#{EmployeeListBean.removeEmployee}" value="Löschen">
				</a4j:commandButton>
				</h:form>
			</h:column>
		</h:dataTable>

Hat jemand eine Lösung zur Hand?
 
Du brauchst Bean-Informationen nicht weiterzuleiten. Beans werden von JSF verwaltet. Verwaltete Elemente sind über den FacesContext zugreifbar.

Befindet sich die Methode 'removeEmployee' in der Bean-Klasse, hast du bereits Zugriff auf deren Elemente. Befindet sie sich in einer anderen Klasse, benutze in der Methode den FacesContext um an die Bean zu kommen.

Code:
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding = context.getApplication().createValueBinding("#{NameDerManagedBean}");
MyBean bean = (MyBean)binding.getValue( context );
bean.doSomething();
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben