Saudações Java!!!

Dando continuação a Parte I, neste artigo veremos como utilizar Eventos de Ação, que são iniciados durante a Fase Invocar Aplicação, quase no fim do ciclo de vida de uma página JSF(Veja o diagrama na primeira parte). Os eventos de ação são iniciados por componentes de comando(botões e links), HtmlCommandButton e HtmlCommandLink são os únicos componentes padrões que acionam ActionEvents. Um comando de usuário é representado por uma instância da classe de ActionEvent.

 

Normalmente, vinculam-se listeners de ação a componentes de comando nas páginas JSF. Por exemplo, você pode adicionar um listener de ação a um link desta forma:

 

<h:commandLink actionListener=”#{bean.action}” >
……..
</h:commandLink>

 

Os componentes de comando submetem requisições quando são ativados, de modo que não há necessidade de usar onchange para forçar submissões, como fizemos com eventos de mudança de valor no artigo anterior. Quando você ativa um comando ou um link, o formulário que o contém é submetido e a aplicação JSF subseqüentemente inicia eventos de ação.

 

É importante distinguir entre listeners de ação e ações. Resumidamente, as ações trabalham para a lógica de negócios e participam do handling de navegação.

 

Os listeners de ação freqüentemente trabalham em conjunto com as ações quando uma ação precisa de informações sobre a interface do usuário. Irei demonstrar um exemplo utilizando Eventos de Ação, adicionando uma nova funcionalidade ao exemplo da primeira parte. Esta nova funcionalidade irá fazer com que ao ser clicado a imagem, irá aparecer uma descrição de cada raça. Desta forma a imagem ao ser clicada irá disparar uma ação. Veja a figura 01.

 

wmmejsfp2fig01.jpg

Figura 01

 

Conclusão

Este artigo demonstrou uma pequena mudança no primeiro artigo utilizando Eventos de Ação, no próximo artigo irei demonstrar como funciona os Eventos de Fase. Até a próxima!!!

 

Referências
The J2EE 1.4 Tutorial http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html
Core JavaServer Faces http://www.horstmann.com/corejsf/