Dúvida com JSF  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
leoloko
JavaChild
[Avatar]
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline

Opa,

To lendo sobre JSF, li alguns tutoriais básicos, funcionou belezinha... porém nos materiais que eu li, ele usa apenas uma classe como managed-bean e nessa classe tem o Bean e métodos... e eu queria separar isso, tipo ter o Bean Usuario e o dao UsuarioDao, e até mesmo uma classe action que chama o dao que chama o bean

Um exemplo bem simples:





Porém como configurar isso no faces-config.xml, para que ele pegue o uma classe Dao que tem um objeto bean nela e fazer tudo automatico?

This message was edited 1 time. Last update was at 15/04/2008 10:17:05

[MSN] [ICQ]
vtr.oliveira
JavaChild

Membro desde: 19/02/2008 09:25:33
Mensagens: 126
Localização: SP
Offline

Bom... vamos lá...

Você pode usar o padrão MVC... Na sua classe Controller (ou DAO, como preferir) você realiza todas as operações pertinentes à persistência dos dados (Selects, Inserts, Updates, Deletes e etc...)

Essa classe DAO teria um objeto do tipo "Usuario" (seguindo seu exemplo)...

No faces-config, vc mapearia apenas a DAO, pois ela já conhece a classe Usuario...

Neste caso, o teu JSP precisa conhecer apenas a classe DAO. Ou seja, quando você for usar o atributo "telefone", por exemplo, você usaria da seguinte forma:

#{seuDao.Usuario.telefone}

Espero ter ajudado

Vitor Ribeiro de Oliveira
[Email] [MSN]
antoniopopete
Virtual Machine Man

Membro desde: 27/12/2006 02:37:31
Mensagens: 712
Localização: Salvador - BA
Offline

O faces-config você deve mapear apenas os faces.
O DAO, seria instanciado dentro do faces ou por uma factory ou de forma direta e você utilizaria ele normalmente.
O model ou dto seria um atributo privado do managed bean com get/set.
E para acessar o valor é fazer o que o colega citou
#{managedBean.model.propriedade}

Antonio Lazaro

[Email]
leoloko
JavaChild
[Avatar]
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline

Hummmm...

Mas tipo no meu Dao, eu tenho que instanciar o objeto Usuario ? "Usuario usuario = new Usuario()" ou ele jah faz isso?

E qual seria o ideal, ter um controller que acesse o dao e o jsp conhecer apenas esse controller?
[MSN] [ICQ]
leoloko
JavaChild
[Avatar]
Membro desde: 15/05/2005 12:05:19
Mensagens: 149
Offline

antoniopopete wrote:O faces-config você deve mapear apenas os faces.
O DAO, seria instanciado dentro do faces ou por uma factory ou de forma direta e você utilizaria ele normalmente.
O model ou dto seria um atributo privado do managed bean com get/set.
E para acessar o valor é fazer o que o colega citou
#{managedBean.model.propriedade}


Ahhh então o que eu digo controller seriam faces... e essas faces que instanciam os daos e etc... tendi..
[MSN] [ICQ]
vtr.oliveira
JavaChild

Membro desde: 19/02/2008 09:25:33
Mensagens: 126
Localização: SP
Offline

Exatamente isso...

É bom ter um objeto do tipo "Usuario" somente quando você for trabalhar com transactions... ou seja, insert, delete e update... caso você vá trabalhar apenas com select e exibição de dados na tela, isso não é necessário, afinal de contas, você pode usar o "Select new" do Hibernate...

Vitor Ribeiro de Oliveira
[Email] [MSN]
Giulliano
GUJ Master
[Avatar]

Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline

vtr.oliveira wrote:Bom... vamos lá...

Você pode usar o padrão MVC... Na sua classe Controller (ou DAO, como preferir) você realiza todas as operações pertinentes à persistência dos dados (Selects, Inserts, Updates, Deletes e etc...)

Essa classe DAO teria um objeto do tipo "Usuario" (seguindo seu exemplo)...

No faces-config, vc mapearia apenas a DAO, pois ela já conhece a classe Usuario...

Neste caso, o teu JSP precisa conhecer apenas a classe DAO. Ou seja, quando você for usar o atributo "telefone", por exemplo, você usaria da seguinte forma:

#{seuDao.Usuario.telefone}

Espero ter ajudado


Cara não sei qual é o seu nível de conhecimento, mas essa foi a maior besteira que já li sobre MVC. Talvez por vc não conhecer, mas vamos lá.

DAO e CONTROLLER -> São coisas TOTALMENTE distintas. DAO é um pattern da (SUN EE Patterns) que diz respeito a melhores práticas de acessar dados de um BD (por exemplo).

Controller é quem recebe requisições e delega para uma servlet especifica ou uma classe MODEL.

No caso de JSF não existe servlets pq isso foi abstraído no framework. Você só precisa criar uma ManagedBean/HandlerBean e mapea-lo no faces.config.

ManagedBean/HandlerBean = nomenclaturas. Isso são apenas classes normais com métodos e atributos como qq outra classe com a diferença que deve possuir gets e sets e estar no faces config.


Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi




<UnTouChAbLe>
[Email] [WWW] [MSN]
vtr.oliveira
JavaChild

Membro desde: 19/02/2008 09:25:33
Mensagens: 126
Localização: SP
Offline

OK cara, obrigado pelas informações...

Pois é, vivendo e aprendendo ^^

Mas não precisa ficar nervoso, nem todos nascem sabendo ou sabem tanto quanto o senhor

Obrigado

Vitor Ribeiro de Oliveira
[Email] [MSN]
Giulliano
GUJ Master
[Avatar]

Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline

vtr.oliveira wrote:OK cara, obrigado pelas informações...

Pois é, vivendo e aprendendo ^^

Mas não precisa ficar nervoso, nem todos nascem sabendo ou sabem tanto quanto o senhor

Obrigado


Não estou nervoso vtr.oliveira. As vezes o modo como vc interpreta um texto dá a impressão errada. Quando digo que isso foi a maior besteira é pq foi mesmo e eu acho isso engraçado. Por isso respondi o tópico para que vc entenda a diferença e não comece com o pé errado. Poucos aqui no forúm são pessoas mal educadas. Não se assuste quando perguntar alguma coisa q alguém vier com os dois pés no peito. e normal cara, alguns ajudam outros atrapalham. valews...

[']s

Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi




<UnTouChAbLe>
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team