[RESOLVIDO!] Problemas em limpar dados da session

2 respostas
Kleber-rr

Olá Pessoal, bom dia.

Estou com problemas em limpar os dados da session durante a consulta. Meu método de busca está listado abaixo:
public List<Funcionario> getListaFuncionarios() {

        Session session = HibernateUtil.currentSession();
        FuncionarioDao funcionarioDao = new FuncionarioDao(session,
                Funcionario.class);

        return funcionarioDao.list();
    }

    public List<Funcionario> getFuncionariosGenerico() {
        Session session = HibernateUtil.currentSession();
        FuncionarioDao funcionarioDao = new FuncionarioDao(session,
                Funcionario.class);
        List<Funcionario> lista = funcionarioDao.pesquisaFuncionarios(
                this.funcionario.getNome(), this.funcionario.getCpf(),
                this.funcionario.getRg());
        return lista;
    }
No dao está assim:
@SuppressWarnings("unchecked")
    public List<Funcionario> pesquisaFuncionarios(String nome, String cpf,
            String rg) {
        Criteria c = session.createCriteria(Funcionario.class);
        //
        // if (nome != null)
        // nome = normalizar(nome);

        List<Funcionario> results = new ArrayList<Funcionario>();
        c.add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE));
        c.add(Restrictions.like("cpf", cpf, MatchMode.ANYWHERE));
        c.add(Restrictions.like("rg", rg, MatchMode.ANYWHERE));
        results = (List<Funcionario>) c.list();
        return results;
    }

O que acontece??
Na minha jsp de consulta, quando eu digito o nome para fazer esta consulta, o nome continua no campo mesmo depois de ser retornada o resultado da consulta. Ele não limpa, mesmo que depois eu clique no botão limpar. Este botão limpar funciona desde que eu não mande fazer a consulta, mas se eu fizer, ele não limpa nada...

segue o código da minha jsp:
///...
<h:outputLabel value="Digite o nome: " id="busca-nome"/>
 <h:inputText id="nomeInput" value="#{funcionarioHandler.funcionario.nome}" />
 
 <h:outputLabel value="Digite o CPF: "  id="busca-cpf"/>
 <h:inputText id="cpf" value="#{funcionarioHandler.funcionario.cpf}"/>
 
 <h:outputLabel value="Digite o RG: "  id="busca-rg"/>
 <h:inputText id="rg" value="#{funcionarioHandler.funcionario.rg}"/>
 
<h:commandButton value="Pesquisar" action="#{funcionarioHandler.getFuncionarios}" />
<input type="button" value="Limpar" onclick="reset()"/>
//...

Eae pessoal, alguma dica??

Agradeço.

2 Respostas

edwlipe

não sei qual framework que você está usando,
mas se não me engano, para remover um atributo da sessão através de jstl é assim:

mas não sei se isso resolve seu problema, acho que seu método reset deve chamar uma servlet que remove esses atributos da sessão,
ao invés de um javascript como parece que está acontecendo.

Kleber-rr

Pessoal, consegui resolver. Criei um método ActionEvent no bean para limpar os objetos do form, e chamei o método no jsp como ActionListener.

Valeu.

Criado 13 de outubro de 2010
Ultima resposta 13 de out. de 2010
Respostas 2
Participantes 2