Chamando um método na abertura da página com PrimeFaces

Chamar um método do lado do servidor ao carregar uma página é algo bastante comum quando programamos uma aplicação web. Estes dias, me deparei com esta questão, utilizando a implementação do Java Server Faces 2 chamada PrimeFaces.

Você que já usa o JSF 2.2 pode dizer: pera lá, é fácil de fazer com CDI! É verdade. É mais simples e pode ser usado na maioria dos casos. Vamos ver como ficaria nosso controller:

Como eu disse: na maioria dos dias, dá pro gasto! Mas tem um grande problema: a página irá esperar o término da execução do seu método para só depois ser exibida! Se for um método com instruções simples, sem problemas, todavia, se for um método com funções que demandam certo tempo, a solução mais indicada é fazer uso da tag remoteCommand do PrimeFaces.

A tag remoteCommand contém um parâmetro chamado autoRun que deve ser setado como true — este é o responsável por chamar o método após o carregamento da página. Nosso controller, agora sem fazer uso do CDI:

Agora, o pulo do gato no XHTML:

Atenção para algo muito importante: se no parâmetro update for informado um componente que a tag remoteCommand está inserida — neste caso, o form — o método entrará em loop infinito; algo que todos nós adoramos queremos evitar. 🙂 Outra dica legal é usar os parâmetros onstart e oncomplete da tag remoteCommand para lidar com o status da chamada ajax.

 

Referência: PrimeFaces ShowCase

Sobre o Autor

Fundador do blog Eu++. Programador autodidata de várias linguagens de programação, formado em Tecnologia em Análise e Desenvolvimento de Sistemas pelo Instituto Federal de São Paulo. Apaixonado por empreendedorismo e inovação, sonha em melhorar o mundo através da tecnologia e do compartilhamento de informação e conhecimento.