# JSF Datatable und löschen



## puddah (19. Sep 2006)

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:


```
<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?


----------



## HLX (20. Sep 2006)

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.


```
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding = context.getApplication().createValueBinding("#{NameDerManagedBean}");
MyBean bean = (MyBean)binding.getValue( context );
bean.doSomething();
```


----------



## puddah (25. Sep 2006)

Vielen Dank. Das mit den ValueBindings auslesen hat mir weiter geholfen.


----------

