quinta-feira, 5 de janeiro de 2012

Integrando o contexto de Beans do lindbergframework com JSF (Java Server Faces)

A integração do JSF com o contexto de Beans do lindbergframework possibilita o uso de qualquer Bean declarado com annotation @Bean e que faça parte do contexto nas páginas JSF, diretamente via o ID do Bean.

Exemplo: Considere que temos um managedBean chamado ManterPessoaMB cujo ID do mesmo, declarado via annotation @Bean seja manterPessoaMB.

@Bean("manterPessoaMB")
public class ManterPessoaMB {

   public String cadastrar(){
      //... implementação da ação de cadastrar
      return null;
   }

}

ATENÇÃO: Para que o bean acima faça parte do contexto de beans o mesmo deve estar direta ou indiretamente abaixo do pacote base, definido na configuração de CORE.


Para efetuar a integração e possibilitar que usemos o bean manterPessoaMB diretamente em páginas JSF a partir do seu ID, é necessário declarar apenas o ELResolver do lindbergframework, org.lindbergframework.integration.web.jsf.beans.LindbergBeanJsfResolver no faces-config.xml da aplicação como abaixo:

<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">
     <application>
         <el-resolver>org.lindbergframework.integration.web.jsf.beans.LindbergBeanJsfResolver</el-resolver>
     </application>
</faces-config>

Basta isso para que o contexto de beans do lindbergframework esteja acessível nas páginas JSF.

Abaixo é mostrado um exemplo de um botão que acessa o bean ManterPessoaMB a partir do seu ID definido via annotation @Bean, manterPessoaMB, e chama o action 'cadastrar' declarado no mesmo.

<h:commandButton action="#{manterPessoaMB.cadastrar}" value="Cadastrar" />

Nenhum comentário:

Postar um comentário