Dúvida sobre Action - JSF [Resolvido]

2 respostas
G

Caros:

Estou com o seguinte problema: criei um método void, que basicamente fazia o seguinte:

public void retornaCadastrado() {
        Configuracao novoCnf = this.getByCodigo("000001");

        this.setEmpresa(novoCnf.getEmpresa());
        ...outros SETs
    }

Com isso, garanti que toda chamada ao meu método populasse meu objeto com o conteúdo do objeto tratado por Código = “000001”.

Até aí, funcionou perfeitamente. Agora, queria que, ao clicar no botão:

<h:commandButton id="botaoCarrega" value="Login" action="#{configuracao.retornaCadastrado}" />

Ele sempre me retornasse o objeto do código 000001 na tela, de forma correta. Assim, posso exibir o conteúdo de qualquer item, como:

<label id="nomeEntidade"><h:outputText value="#{configuracao.empresa}"/></label>

e me mostraria o nome da empresa do local do label “nomeEntidade”.

O problema agora é o seguinte - como eu faço isso ser automático (basicamente, no onload do meu form)?

Fiz da seguinte forma:

<body onload ="carregaConf();">

A função carregaConf está abaixo:

function carregaConf() {
    document.getElementById('formDados:botaoCarrega').click();
}

Nesse caso, ele executa o click do botãoCarrega acima definido, fazendo a carga do objeto “000001” para mim.

Só que, após ele executar o click, como a página é recarregada, ele volta a executar novamente o onload da página, fazendo com que o conteúdo seja perdido…

Existe alguma forma de executar uma action de forma automática, apenas uma vez?

2 Respostas

finotti

Faça isso no construtor do managed bean “configuracao”.
Se estiver usando JSF 2.0, use a anotação @PostConstruct num método que realiza essa tarefa que você precisa.

G

finotti:
Faça isso no construtor do managed bean “configuracao”.
Se estiver usando JSF 2.0, use a anotação @PostConstruct num método que realiza essa tarefa que você precisa.

Valeu! E eu cheio de workaround (aka POG) para resolver o problema, porque não conseguia fazer o onload do javascript carregar para mim o objeto…

Criado 5 de janeiro de 2011
Ultima resposta 5 de jan. de 2011
Respostas 2
Participantes 2