JSF - Recuperar linha selecionada

Opa galera tudo bom?!

Estou com uma duvida… estou tentando recuperar a linha selecionada, porém não estou conseguindo =/

Tipo ele retorna sempre o ultimo item adicionado na lista…

Alguém sabe o que pode estar acontecendo?!

Já estou tentando fazer isso há dias =/

valeeu!!

public String pesquisarTodoCliente(){
		
		List<CadastroClientesBean> lis = bo.listar(); // recupera a lista
		
		for (int i = 0; i < lis.size(); i++) {
			b = new CadastroClientesBean();
			b.setNome(lis.get(i).getNome());
			lista.add(b);
		}
		
		return "listar-cliente";
	}

               <h:form prependId="false" id="form">
			<div id="listaClienteDIV"> 
				<p:panel id="painel-listar" header="Lista de Clientes">
				    <p:dataTable var="list" value="#{cadClientes.lista}" 
				               scrollable="true" scrollWidth="615" scrollHeight="200">
				   		 <f:facet name="header">Selecione a linha e clique em "Ver" para detalhes.</f:facet>
				   		 <p:column headerText="Nome">
				   		 	  <h:outputText value="#{list.nome}"/>
				   		 </p:column>
				   		 <p:column headerText="Vizualizar">
				   		 	  <p:commandButton update="modal-cliente" icon="ui-icon-search" value="Ver" oncomplete="cliente.show()">
	                               <f:setPropertyActionListener target="#{cadClientes.mostrarCliente}" value="#{list}"/>
	                         </p:commandButton>  
				   		 </p:column>
				    </p:dataTable>
				</p:panel>
			</div>
		</h:form>
		<p:dialog widgetVar="cliente" id="modal-cliente" modal="true">
			<h:outputText value="#{cadClientes.b.nome}"/>
		</p:dialog>

Pesquise sobre o DataModel do jsf. Ele vai solucionar isso pra ti de forma rápida e indolor.

Como só tem um trecho de código ai, não dá pra saber o que está errado.
De qualquer forma, esse exemplo é exatamente o que quer fazer.

http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionByColumn.jsf

Aqui tem um exemplo de uma aplicação real que faz isso: Aplicação Web Completa Tomcat JSF Primefaces JPA Hibernate.