Na minha camada DAO eu utilizaria o PessoaBean e na minha camada View eu utilizaria o PessoaForm.
Alguém tem algum jeito mais fácil de fazer isso?
Tem algum padrão para resolver este problema?
Se isso estiver certo, em que camada eu devo fazer a “cópia” de um bean para outro?
uma opção seria vc colocar o seu objeto PessoaBean dentro do form, algo do tipo:
public class PessoaForm extends ActionForm{
private PessoaBean pessoaBean;
//gets e sets
}
depois dentro dos jsp’s, vc tem uma tag html:text, vc usaria:
desta forma o seu obj PessoaBean já viria com os dados preenchidos na action. Não sei se é a melhor forma, mas é uma opção.
[]s
P
pcalcadoPJ
O que você realmente deveria fazer era criar objetos de domínio.
Onde estão as regras de negócio do seu sistema?
Shoes
R
rbastosPJ
Na verdade eu tenho uma camada de negócios(bo)…
Seria o fluxo Action -> BO -> DAO
P
pcalcadoPJ
Então rpa que você rpecisaria de um bean? Por que não usar seu objetod e negócio diretamente?
R
rbastosPJ
Tudo bem… mas onde entra o ActionForm?
Você está sugerindo para que as regras de negócio fiquem no ActionForm?
P
pcalcadoPJ
Se sua pergunta é se você vait er que ter o FormBean + o objeto de negócio, a resposta é sim.
Shoes
R
rbastosPJ
Agora começou a ficar mais claro… na minha classe de negócio eu teria os atributos “quentes” que falei(espelho do banco) e os seus métodos com as regras de negócio… é isso?
Poderia inclusive colocar no construtor da classe BO um actionForm e daí fazer a cópia dos atributos do FormBean?
P
pcalcadoPJ
Quase.
Espelho do banco:
Seu banco de dados deve espelhar seus objetos , não o contrário
Construtor de Cópia:
Absolutamente não. A camada de negócios não deve ter dependência com a camada de apresentação. Você pode, no entanto, ter uma classe utilitária que faça o serviço
Shoes
R
rbastosPJ
OK, o banco deve ser o espelho do bean…
Agora mais uma pergunta, na classe BeanUtils existe um método copyProperties que realiza a cópia de um bean para outro, mas só faz isso se os atributos tiverem o mesmo nome e se forem do mesmo “tipo”, caso contrário tenho que fazer manualmente, como seria o caso do salario String para salario Doble.
Tu conhece outra forma de fazer isso?
P
pcalcadoPJ
Não, mas não é difícil de implementar com reflection ou as classes de JavaBeans, se bobear já tem algo pronto mesmo.
R
rbastosPJ
É a minha dúvida maior era se eu deveria utilizar dessa forma, digo, se é assim que o pessoal utiliza o struts…