alguem pode me dar um exemplo de como trabalhar com um tabPanel no jsf utilizando varios beans?
algo mais ou menos assim:
TAB1 | BEAN 1
TAB2 | BEAN 2
TAB3 | BEAN 3
e no ManageBean teria um BEAN GERAL que conteria o BEAN 1, BEAN 2, BEAN 3 dentro dele…
cara, vc tah a falar do tabPanel do RichFaces?
no trampo eu tenho uma pagina com 5 abas, e tipo a nao ser que cada aba tenha muuuito codigo( tipo um crud pra cada tab),
eu colocaria tudo em 1 bean soh, fica mais facil. Além de que normalmente a maioria das tabs só mostra tabelas, claro que existem os h:commandButtons em cada row, pra deletar e editar, mas a action deles normalmente é navegar pra outra pagina.
sobre um bean ter outros beans vc tem que configurar no faces-config.xml:
ex:
<managed-bean>
<managed-bean-name>myBean1</managed-bean-name>
<managed-bean-class>mypackage.MyBean1</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>myBean2</managed-bean-name>
<managed-bean-class>mypackage.MyBean2</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>myBean1</property-name>
<value>#{myBean1}</value>
</managed-property>
</managed-bean>
e no codigo a el fica assim :
<h:outPutText value="#{beanPai.beanFilho1.algumValor}"
esse link me foi de GRANDE ajuda:
valeu
vitenho
to sim…
olha soh, meu backbean precisa ter escopo application mesmo? nao pode ser session?
e ele deve entrar como propriedade do meu filho?
nao cara, de jeito nenhum coloca o teu bean no application scope ( senao ele vai ser o mesmo pra todos os users)
eu soh copiei o exemplo daqele link q te passei ( burro eu kkkkk)
o codigo certo eh assim:
<managed-bean>
<managed-bean-name>myBean1</managed-bean-name>
<managed-bean-class>mypackage.MyBean1</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>myBean2</managed-bean-name>
<managed-bean-class>mypackage.MyBean2</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>myBean1</property-name>
<value>#{myBean1}</value>
</managed-property>
</managed-bean>
se o scope vai ser session ou request ai depende do que vc vai fazer nessa page.
cara eu realmente recomendo vc fazer tudo relativo a uma pagina num bean soh
eu uso essa injeção de beans quando por exemplo eu tenho algo assim:
class ProdutoCrudBean{
I18NBean translator;// bean que traduz msgs de erro
UserSessionBean userBean;// bean que fornece info sobre o user logado
public void addProduto(){
Produto p = new Produto();
p.setCriador(userBean.getCurrentUser());
// persiste;
translator.addMsg("saveok");
}
}
tipo beans que sao usados em quase todas as paginas (ex: tradução e auditoria)
valeu
ahh por isso te perguntei kkkk
mas de boa, já deu certo
vlw pelo help
coloca o titulo como RESOLVIDO?