[JSF] Passando uma action para um componente customizável  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
bruno_cobra
JavaTeenager

Membro desde: 08/04/2007 23:59:14
Mensagens: 194
Localização: Lajeado, RS
Offline

Pessoal,

Pela primeira vez estou trabalhando com a criação de um componente customizado em JSF, mas estou passando por um problema: como passar para o componente uma action a ser executada?

Exemplo: <bnt:test action="#{clienteM.salvar}" value="Salvar" />

Não sei como faço para que o componente "entenda" a action. Alguém sabe onde posso encontrar algo do tipo? Obrigado a todos.

http://blog.brunozambiazi.com
-
[WWW]
dev.rafael
Virtual Machine Man
[Avatar]

Membro desde: 17/09/2007 01:35:27
Mensagens: 631
Offline

Se vc estiver usando JSF2 basta declarar o atributo action da taglib do facelets. A especificação diz q alguns atributos como action, var, value tem um significado especial e são tratados diferentemente pelo Facelets. Assim, se o seu custom componente possui um atributo chamado action o próprio Facelets vai "extrair" a EL e chamar o método setActionExpression do seu componente. P/ disparar o evento vc precisa primeiro checar se ele foi clicado. Isso geralmente é feito adicionando-se o atributo name no input gerado. Se vc concluir q o command foi disparado, então vc chama o método queueEvent.

PS.: é importante q seu componente extenda de UICommand ou algum subclasse.

"A mente humana é limitada, mas a estupidez é ilimitada." Wilhelm Steinitz
[Email]
bruno_cobra
JavaTeenager

Membro desde: 08/04/2007 23:59:14
Mensagens: 194
Localização: Lajeado, RS
Offline

Em primeiro lugar, obrigado pela resposta. Na realidade, acabei conseguindo fazer de acordo com o seguinte link:

http://www.javakaffee.de/blog/2006/12/11/how-to-add-a-new-attribute-to-an-existing-jsf-component-using-facelets/

http://blog.brunozambiazi.com
-
[WWW]
dev.rafael
Virtual Machine Man
[Avatar]

Membro desde: 17/09/2007 01:35:27
Mensagens: 631
Offline

Estou feliz q tenha conseguido mas:

1 - MethodBinding foi descontinuada em favor de MethodExpression;
2 - O modelo de getter e setter demonstrado nesse artigo é custoso em termos de memória consumida. JSF2 oferece um meio mais sofisticado p/ armazenar atributos de um UIComponente;
3 - Gerenciamento de estado com saveState e restoreState foi descontinuado.

"A mente humana é limitada, mas a estupidez é ilimitada." Wilhelm Steinitz
[Email]
bruno_cobra
JavaTeenager

Membro desde: 08/04/2007 23:59:14
Mensagens: 194
Localização: Lajeado, RS
Offline

Obrigado pelas informações.
Na realidade, consegui fazer baseado naquele link, não segui tudo à risca (apenas adaptei a minha necessidade).

Sobre o que dissestes:
1 - Estou usando MethodExpression;
2 - Não posso utilizar JSF 2 neste projeto.
3 - Não sabia disso, mas vou dar uma olhada para ver o que posso melhorar.

Obrigado pelas respostas.

http://blog.brunozambiazi.com
-
[WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team