Olá desenvolvedores, neste tutorial falaremos sobre os actionListener que cumprem a missão de ficar “ouvindo” se qualquer alteração ocorrera no objeto qual ele monitora. Os Listeners  são comumente utilizados para tomar alguma decisão baseada em uma ação do usuário, como o clique em um botão, por exemplo.

A linguagem Java possui muitos Listeners, e neste tutorial entenderemos um pouco mais especificamente do actionListener, um dos mais utilizados.

Em “EVENTOS: UMA BREVE INTRODUÇÃO”, falamos sobre como os eventos (JavaScript) realizados pelo usuário podem disparar um conjunto de instruções que executam uma ou mais ações, as chamadas funções. Aqui implementaremos um actionListener, um evento do JSF – JavaServer Faces.

IMPLEMENTADO O ACTIONLISTENER

A ideia é realizar alguma operação no banco de dados quando submetermos o formulário clicando em “salvar”. E para isso queremos que um dado método execute uma ação antes que os dados do formulário sejam salvos de fato.

Entenda, temos implementado no componente h:commandLink um action responsável por chamar o método salvar() implementado no ManagedBean. O ActionListener chamará o método registraLog() que implementaremos no ManagedBean, PessoaBean.

No entanto, ao contrário do action, que além de chamar o método, pode, de acordo com a necessidade fazer o redirecionamento para uma outra página, o actionListener não faz redirecionamento, sua missão é apenas chamar o método. Se você estiver utilizando os dois métodos, o actionListener deverá ser implementado primeiro.

<h:commandLink actionListener= “pessoaBean.registraLog”>

Significa que, independentemente do que aconteça durante o processamento das informações quando o formulário for submetido, isto é, se os dados forem salvos ou não, as informações de log deverão ser salvas na base de dados. Dessa forma para testar se o método está de fato sendo chamado você pode, por exemplo, implementar em seu escopo a instrução “System.out.println()”.

public void registraLog(){
System.out.println("método registraLog");
}

EM POUCAS PALAVRAS

Neste tutorial você aprendeu um pouco mais sobre o conceito do método actionListener que permite que uma ação seja executada a partir do formulário antes que o processo de submissão seja completado. Obviamente que para o método registraLog() gravar os logs seria preciso a implementação de uma rotina de gravação. E esta não é a solução ótima para fazê-lo

Entretanto, o objetivo primeiro aqui é mostrar a você a ideia central por trás do método actionListener.