Lá vai entçao.
Tenho uma grid ( dataTable ) com o binding:
<t:dataTable var="row" value="#{usuario.usuarios}" binding="#{usuario.dataTable}">
no meu managed bean, criei um atributo dataTable do tipo HtmlDataTable vom os respectivos get e set:
private HtmlDataTable dataTable;
Na minha coluna dentro da dataTable, coloquei um commandLink que chama um actio que vai capturar os dados da linha selecionada.
<t:column width="50" title="Cód.">
<f:facet name="header">
<t:outputText value="Código"/>
</f:facet>
<t:commandLink action="#{usuario.selectRow}" immediate="true">
<t:outputText value="#{row.codigo}"/>
</t:commandLink>
</t:column>
Agora o meu action para capturar o objeto da linha selecionada:
public String selectRow() {
Usuario usuarioSelecionado = (Usuario)dataTable.getRowData();
System.out.println(usuarioSelecionado.getNome());
return null;
}
o método getRowData(), retorna um Object, então não deve esquecer de fazer o cast para o tipo de objeto que você tem na sua coleção. No meu caso Usuario.
OBS: Eu usei os componentes Tomahawk, do myfaces, mas funciona pros outros tb.
Espero que te sirva… Abraço