Bom dia amigos e amigas do GUJ, tenho uma aplicação JSF2 e estou utilizando o mecanismo de redirect ao chamar uma nova página de CRUD.
Meu problema é o seguinte: Eu cadastro uma nova unidade acadêmica, e no MBEAN de um CRUD de solicitaões relacionadas a essas unidades,
existe uma lista de unidades, que é recarregada no construtor desse MBEAN. Só que qdo eu cadastro uma nova unidade e vou no CRUD de solicitações,
o MBEAN dessas solicitações não é reinstanciado e portanto a lista não é atualizada. Alguém saberia me ajudar resolver isso sem ter que usar um
<p:ajax> ? Um abraço a todos.
[RESOLVIDO]Reinicialização do MBEAN
6 Respostas
Ao final do método do primeiro cadastro vc faz
meuBean = new Bean();
Eu estava fazendo isso, dentro de um controlador, chamava outro…
FacesContext ctx = FacesContext.getCurrentInstance();
Map<String,Object> sessionMap = ctx.getExternalContext().getSessionMap();
this.utilBean = (UtilidadesController) sessionMap.get("UtilidadesController");
//FIXME observar se existe realmente a necessidade de controlar a isntância de controladores no contexto do jsf
if ( this.utilBean == null ){
this.utilBean = new UtilidadesController();
sessionMap.put("UtilidadesController", utilBean);
}
isso ae estah dentro de um getController… mas tenho pensado que não seria boa opção intervir no gerenciamento do ciclo de vida de um MBEAN, penso que seja uma atvidade nata do jsf e que pode me trazer danos futuros fazer essa intervenção. O que acha?
Quando se usa sessionBean eu já vi que isso é um mau necessário.
Ou então você pode criar um método dentro do seu UtilidadesController em que ele se reseta. [=
Ao iniciar um cadastro (mesmo que seja na primeira vez) vocÊ chamaria
utilidadesController.reset();
E nesse método você zera moçada, que tal?! \o/
Putz, to vendo que vou ter que fazer isso… valew a dica… por falta de aprofundamento no assunto tinha receio de ter problemas futuros por pensar que o controle de instâncias dos MBEANS deveria ser exclusivo do JSF.Mas como vimos está aberta ao programador intervir nas instâncias de MBEANS no contexto do JSF…
Programador pode interferir no ciclo de vida sim. Na verdade o JSF só faz o papel automática, qualquer customização fica livre. No caso vc tem q pegar a referencia do MDBen e fazer oq vc quiser…até remover da sessão se for necessario.
Obrigado amigos, estou mais seguro agora para intervir no ciclo do MBEAN… um abç…