Manter o valor do campo digitado no padrao facade[RESOLVIDO]

Sei que para alguns minha dúvida pode ser meio básica. E tomara que seja mesmo…rs
Estou com um problema ao realizar uma pesquisa em minha página transacoes.xhtml.

Tenho um campo inputText com o id “pesquisa” e faço uma pesquisa no banco ignorando os acentos para que o usuário possa fazer a sua pesquisa com ou sem acentos.
Segue o código do transacoes.xhtml (apenas o codigo do campo de pesquisa)

<p:watermark value="Inserir nome do estabelecimento, valor ou categoria da transação e clique em pesquisar" for="pesquisa"/> <p:inputText size="100" id="pesquisa" style="border: 1px solid #0070ba !important" value="#{logadoControlador.filtrosMov}" /> <br/> <br/> <p:commandButton value="Pesquisar" actionListener="#{logadoControlador.movimentacaoFiltro}" ajax="false"/>

O problema é que no controler eu retiro os acentos do filtro antes de fazer a pesquisa . Ao exibir o resultado da pesquisa na tela, o valor do campo digitado no filtro atualiza para o novo valor sem acento, valor esse que não é o que o uauário digitou.

Segue o código onde retiro os acentos do filtro (LogadoControlador.java)


   private String filtrosMov;//recebe o valor do filtro que o usuário digitou

    public String getFiltrosMov() {
        return filtrosMov;
    }

    public void setFiltrosMov(String filtrosMov) {
        
        this.filtrosMov = removeAccents(filtrosMov);
   
    }
    
    //removendo a acentuação do filtro
    public static String removeAccents(String str) {
        str = Normalizer.normalize(str,Normalizer.Form.NFD);
        str = str.replaceAll("[^\\p{ASCII}]", "");
        return str;  
    }
    
    private List<Movimentacao> retornoBusca;
    
   //aqui eu chamo o facade que vai realizar a busca sem os acentos
    public void movimentacaoFiltro() {
        retornoBusca = new ArrayList<>();
        if (filtrosMov != null && !filtrosMov.isEmpty()) {
            retornoBusca = logadoFacade.filtraMovimentacoes(filtrosMov.trim(), getClienteLogado());
        }
    }

    public List<Movimentacao> getRetornoBusca() {
        return retornoBusca;
    }

    public void setRetornoBusca(List<Movimentacao> retornoBusca) {
        this.retornoBusca = retornoBusca;
    }

Não sou muito experiênte em JSF, e gostaria que alguem me desse uma dica de como manter o valor original digitado no campo “pesquisa” ao retornar para minha página transacoes.xhtml.
Alguém pode me ajudar?

Resolvi o problema, eu não estou mais setando a string original filtrosMov. Criei uma nova String e a chamei de FiltrosMovSemAcento. A partir dela, removi os acentos antes de passar o valor para o Facade fazer a busca no banco.

public void movimentacaoFiltro() {
        retornoBusca = new ArrayList<>();
        if (filtrosMov != null && !filtrosMov.isEmpty()) {
            String FiltrosMovSemAcento = removeAccents(this.filtrosMov);
            retornoBusca = logadoFacade.filtraMovimentacoes(FiltrosMovSemAcento.trim(), getClienteLogado());
        }
    }

Desculpem por fazer alguns perderem o tempo em ler o post. Da proximna vez prometo que tentarei resolver o problema antes de perguntar :slight_smile:
Abraços