| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 10:09:04
|
leoloko
JavaChild
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 10:25:20
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 10:37:17
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 10:38:03
|
leoloko
JavaChild
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?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 10:39:14
|
leoloko
JavaChild
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..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 10:42:37
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 10:43:56
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
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> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 11:04:19
|
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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2008 11:08:28
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
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> |
|
|
 |
|
|