segunda-feira, 5 de outubro de 2020

Formas de acessar um ManagedBean JSF instanciado pelo container

     Nesse post vou trazer duas formas de acessar um ManagedBEans JSF já instanciados pelo container e chamar seus métodos. Útil principalmente para beans de escopo de sessão ou aplicação, não criando instâncias extras.

 

     A primeira:


public static <T> T findBean(String beanName) {
        FacesContext context = FacesContext.getCurrentInstance();
        return (T) context.getApplication().evaluateExpressionGet(context, "#{" + beanName + "}", Object.class);

}


    A segunda:

 

public static Object pegaManagedBean(String nomeNoXML) {
        FacesContext context = FacesContext.getCurrentInstance();
        ELResolver resolver = context.getApplication().getELResolver();
        return resolver.getValue(context.getELContext(), null, nomeNoXML);
}

Nenhum comentário:

Postar um comentário