JSF - MannagedBean é Bean?

4 respostas
dahenz

Pessoal, estou começando com JSF, e me deparei com uma dúvida!!!

O MannagedBean no caso seria como um pacote de Beans ou de POJOs, como nas Actions do Struts2???

Eu possuo o pacote Bean, onde existem mapeamentos do Hibernate e tal… Agora eu gostaria de saber se eu mantenho meus Beans e Crio um MannagedBean armazenando os POJOs do mesmo (redundância ao meu ver) ou utilizo o Bean Mapeado transformando-o em um POJO???

Alguem me ajuda!!!

Obrigado…

4 Respostas

foxpv

Cara, não sei se to falando bobagem, mas acho q vc tá é fazendo confusão com as nomenclaturas.
ManagedBean é o nome dos beans do JSF, aqueles q vc configura no faces-config.xml entendeu?

dahenz

Sim… até ai eu entendi…

Mas o certo seria eu possuir o Bean com meus mapeamentos e o MannagedBean que seria um POJO que contem as minhas ações???

Tipo… O Bean seria intocável e seria o mapeamento dos campos das minhas entidades relacionais, e o MannagedBean seria o mapeamento dos campos da minha visão??? Eu entendi que seria isso, e estou fazendo dessa

O que voce acha??? faria dessa forma???

Valew fox!!!

L

Toma cuidado na definição que você dá a suas classes, isso pode te limitar a tomar uma solução simples e elegante. A definição é a seguinte:

:arrow: POJO: são objetos simples que não dependem de nenhum framework, pode conter métodos e propriedades em formatos arbitrários.
:arrow: Bean: são objetos com construtor vazio, getters e setters

Há uma implicação de que: todo Bean é POJO, mas nem todo POJO é Bean.

É o seguinte: a idéia dos managed beans é serem POJOs, man você vai ver que, em determinadas situações, não vai dar pra evitar a dependência com o Faces, principalmente se precisar exibir uma mensagem na tela, ou usar tabelas.

Os seus objetos do Hibernate podem ser beans, mas não deveriam, pois a regra de negócio acaba ficando em algum outro lugar espalhado e fora de contexto. Insistindo na opção de usar bean pros objetos mapeados com hibernate, você precisará criar objetos de serviço que implemente as regras de negócio.

Os managed beans são parecidos com as Actions do Struts 2, ela pode expor os beans ou POJOs mapeados pelo Hibernate e os objetos de serviço, se houver. Entenda os managed beans como “porta de entrada” da sua aplicação web, pois é o primeiro objeto seu a ser invocado quando ocorre um estímulo do usuário. É responsabilidade do managed bean delegar a tarefa para o objeto que sabe resolver o pedido do usuário.

dahenz

Leonardo… obrigado pela excelente explicação!!

Eu também entendo que o MannagedBean seja similar a uma action do Struts…

No Struts eu defino minha action, com as funcionalidades necessárias… E mesmo assim eu tenho um bean onde eu populo os dados vindos da tela, tenho um pacote DAO que faz as persistências necesárias… Então… como explicado por você, acho que estou no caminho certo em separar meu bean do meu mannagedbean.

Uma vez eu vi uma palestra de uma pessoa da SUN explicando o uso de JSF, e o POJO demonstrado já tinha seus mapeamentos, utilizando um framework chamado SEAM…

Bom, você acha que o padrão que estou aplicando acima esta correto???

Obrigado…

Criado 18 de novembro de 2008
Ultima resposta 18 de nov. de 2008
Respostas 4
Participantes 3