valor selectitems obtener llenar ejemplo dinamico jsf datatable selectonemenu

selectitems - ¿Cómo puedo obtener valores de un selectOneMenu dentro de una tabla de datos JSF?



selectonemenu primefaces ajax (2)

Tengo una tabla de datos JSF con un montón de filas, con cada fila que tiene un selectOneMenu dentro de este modo:

<h:form <h:dataTable id="myTable" binding="#{myBean.dataTable}" value="#{myBean.dataTableRows}" var="row" first="0" rows="0" dir="LTR" frame="hsides" rules="all"> <h:column> <f:facet name="header"> <h:outputText value="Sample Name" /> </f:facet> <h:outputText value="#{row.sampleName}" /> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Role" /> </f:facet> <h:selectOneMenu value="#{row.role}" id="roleInput"> <f:selectItems value="#{myBean.allRoles}" /> </h:selectOneMenu> </h:column> </h:dataTable> <h:commandButton value="Save" action="#{myBean.save}" /> </h:form>

Sin embargo, parece que no puedo entender cómo obtener la función seleccionada de cada fila en el método guardar. En otras palabras, quiero guardar el valor de cada fila. Vi este artículo, que explica cómo guardar un cuadro de texto de entrada:

http://balusc.blogspot.com/2006/06/using-datatables.html#EditableDatatable

pero no parece aplicarse al caso h: selectOneMenu. ¿Alguien tiene un código de ejemplo que hace esto?

¡Gracias!


No hay errores obvios en el formulario: si no se invoca su método de guardar, intente agregar una etiqueta de mensajes a su formulario para ayudar a rastrear el origen del problema. Ayudaría si publicara un bean de muestra que reproduzca el problema y establezca la implementación y la versión de JSF que está utilizando.


Veo que su mesa tiene un enlace a su bean. En su bean, puede usar el método getDataTable () y acceder a él. El documento de Java dice:

public Object getRowData() Return the data object representing the data for the currently selected row index, if any.

Entonces, si haces tu código como:

List<String> selectedRowData = (List<String>) getDataTable().getRowData()

A continuación, puede acceder a todos los campos que el usuario ha elegido. Estoy usando esto en mi propio proyecto y su funcionamiento. La única diferencia es que estoy lanzando a mi propio tipo en lugar de List<String>