Olá, estou fazendo um pequeno add on para o sistema aqui da empresa e ele deve realizar uma busca. Na parte de Model (representada por uma facade) tenho um metodo que retorna uma List. Então, o que eu gostaria de saber é qual a maneira correta de passar esse resultado dos beans (controller, acho) para o view (jsp). Me disseram para mandar os beans gerar o html e a jsp então acessar esse conteudo. Entretanto, eu achava que deveria setar o resultada da busca num bean e na jsp fazer um iteração para mostrar o resultado. A segunda solução me parece mais adequada ao MVC já que, se num determinado momento, eu quisesse colocar Swing como View gerar html (no primeiro caso) seria algo inutil. O que me dizem?!
Se o facade esta te devolvendo um List de beans, ou um List de Strings ou outro tipo basico, entao é só jogar essa List na sessao ou response, e passar pra view renderizar… nada demais
Agora, se a List nao for do tipo que voce quer, vai ter que acontecer uma pequena conversaozinha aih… use um View Helper pra isso, ou algo similar.
[quote=“cv”]Se o facade esta te devolvendo um List de beans, ou um List de Strings ou outro tipo basico, entao é só jogar essa List na sessao ou response, e passar pra view renderizar… nada demais
[/quote]
cv, obrigado pela ajuda. O esquema é um pouco mais simples do que eu pensei antes.
[quote=“cv”]
Agora, se a List nao for do tipo que voce quer, vai ter que acontecer uma pequena conversaozinha aih… use um View Helper pra isso, ou algo similar.[/quote]
Nessa parte eu viajei. Como assim se “não for do tipo” que eu quiser? Eu não vou ter que fazer o metodo na facade para retornar exatamente o que eu quero? Em que casos pode ocorrer de isso que vc falou?
[quote=“cancao”][quote=“cv”]
Agora, se a List nao for do tipo que voce quer, vai ter que acontecer uma pequena conversaozinha aih… use um View Helper pra isso, ou algo similar.[/quote]
Nessa parte eu viajei. Como assim se “não for do tipo” que eu quiser? Eu não vou ter que fazer o metodo na facade para retornar exatamente o que eu quero? Em que casos pode ocorrer de isso que vc falou?[/quote]
Se a List for de referencias pra EJBs, por exemplo, nao vai ser muito legal (voce vai ter um trafego de rede fenomenal, a toa). Me enganei sobre o nome do pattern, nao eh View Helper, coisa nenhuma
Basicamente, vc vai ter que converter os objetos, nesse exemplo, de referencias para EJBs para Transfer Objects, por exemplo. O nome correto do pattern seria Transfer Object Assembler (voce tambem pode achar por ai como Value Object / Value Object Assembler).
o Pattern que o cv ta falando eh o Data Transfer Object. A Sun chama assim. Eh o vulgo Value Object.
A ideia eh voce tirar uma “foto” localmente do seu EJB, que eh PESADAO, e passar tudo junto, num golpe soh, para o View. Ajuda no trafego, e isola o Model do View. isto eh, se algum dia voce mudar de EJB para Hibernate, nao se preocupe com o View, soh mude seu DTOFactory para ler de objetos Hibernate.
Esse problema eh classico em Corba. Voce tem uma interface idl, mas de tanto chamar os getters para cada coisinha, gera um overhead MONSTRO.