Pessoal, to fazendo uma aplicação usando o prime onde clico em um datatable e ele exibe um dialog com os dados do registro que clickei, ate ai tudo bem, o problema é que o dialog só exibe os dados corretos do registro que clico quando eu atualizo a pagina varias vezes no browser(firefox), as vezes clico no registro 45 e ele me retorna em branco,ai clico no registro 10 e ele me retorna 45 ai quando atualizo de novo e clico em 10 finalmente ele me retorna o registro de n° 10.Alguem tem ideia de como resolver isso?Abaixo o código:
Dialog
<p:dialog widgetVar="alterar" header="Dados do Cliente" width="400" height="300">
<h:form id="formAlterar">
<h:panelGrid>
<h:outputText value="Código"/>
<h:inputText disabled="true" value="#{clientesDialogBean.cliente.cod_cliente}"/>
<h:outputText value="Nome" />
<h:inputText value="#{clientesDialogBean.cliente.nome}" />
<h:outputText value="Telefone" />
<h:inputText value="#{clientesDialogBean.cliente.telefone}"/>
</h:panelGrid>
<p:commandButton value="Salvar" action="#{clientesDialogBean.alterar}" update="aviso,formAlterar,formCategorias" />
<p:commandButton value="Remover" update="formRemover" oncomplete="remover.show()"/>
<p:commandButton value="Cancelar" immediate="true" onclick="alterar.hide()" />
</h:form>
</p:dialog>
Bean
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package control;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import model.Cliente;
import persistence.ClienteDAO;
/**
*
* @author luciano
*/
@ManagedBean
@SessionScoped
public class ClientesDialogBean {
private Cliente cliente=new Cliente();
private List<Cliente> lista_clientes;
public void Novo(){
cliente=new Cliente();
}
public void Selecionar(int id){
ClienteDAO clidao=new ClienteDAO();
cliente=clidao.Selecionar(id);
}
public Cliente getCliente(){
return cliente;
}
public void setCliente(Cliente cliente){
this.cliente=cliente;
}
public List<Cliente> getClientes() throws Exception{
ClienteDAO clidao=new ClienteDAO();
lista_clientes=clidao.listaClientes();
return lista_clientes;
}
public void Alterar(){
ClienteDAO cli_dao=new ClienteDAO();
String retorno=cli_dao.Editar(cliente);
}
}
Dao
public Cliente Selecionar(Integer id) Throws Exception{
Cliente c=new Cliente();
DAO dao_con=new DAO();
Statement St=(Statement)dao_con.getCon().createStatement();
ResultSet Rs=St.executeQuery("select * from tbl_cliente where cod_cliente = '"+id+"'");
Rs.next();
c.setCod_cliente(Rs.getInt("cod_cliente"));
c.setNome(Rs.getString("nome"));
c.setTelefone(Rs.getString("telefone"));
c.setEmail(Rs.getString("email"));
c.setSite(Rs.getString("site"));
return c;
}