Dúvidas sobre FacesContext.getCurrentInstance()

Olá a todos. :smiley:

Primeiramente, eu não sei se isso que eu quero é realmente possível ou estou viajando eheehhee…

Eu tenho uma árvore no meu projeto que pode ser montada diferentemente dependendo do bean que usá-la. É uma árvore que é montada dinamicamente.

Por isso, para não ter que fazer um Arvore.JSP pra cada bean, eu gostaria de fazer apenas um ARVORE.jsp que pudesse ser chamado por qualquer um bean e ai, dependendo do bean, o campo VALUE do treeNode chamaria o bean com o método correspondente aquela classe.

Vejam o código de Árvore.jsp:

<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Montar Árvore</title>
        <%
        
        FacesContext faces = FacesContext.getCurrentInstance();
        IBeanArvore bean = (IBeanArvore) faces.getApplication().getVariableResolver().resolveVariable(faces, "IBeanArvore");

        %>
    </head>
    <body>
        <h:form>
            <rich:panel styleClass="rich-tabpanel-content">
                <rich:tree style="width:300px" value="" var="item" > //aqui no value, eu gostaria de chamar o bean dali de cima...
                    <rich:treeNode>
                        <h:outputText value="#{item.descricao}" />
                    </rich:treeNode>
                </rich:tree>
            </rich:panel>
        </h:form>

Gostaria de preencher o value com este IBeanArvore bean que foi declarado acima.
algo como: value="#{bean.metodo}" ou algo que seja parecido com isso.

Eai, estou viajando ou dar pra fazer algo do tipo??? hauahuahuahua

obrigado… aguardo resposta!

Maurício …

Quital esquecer scriptlets e começar a usar Managed Beans?

uahuahuaua…

rapaz, é porque eu sou apenas um subordinado né :stuck_out_tongue:

eu estou apenas fazendo o que me mandaram, até sei outra solução, mas meu medo é que eu tenha entendido errado, eu estava tentando uma nova explicação para saber se é isso mesmo, mas meu chefe ta meio ocupado … então eu decidi vim tirar essa meia dúvida por aqui…

tipo, a intenção, é não ter que usar um JSP arvore para cada bean e sim um único jsp que todos os beans usem esse mesmo jsp.

Eu estou usando uma interface Arvore que tem um metodo carregarArvore. Todos os beans que precisarem carregar uma arvore irão implementar esta interface. e ai dentro do jsp deste bean, irá ter um botão que abrirá um popup da tela ARVORE.JSP (codigo acima) e este arvore.jsp chamará o método carregarArvore do bean que chamou ele…

tem alguma forma diferente de fazer isso?