Tenho algumas dúvidas em um projetinho que estou fazendo com Struts:
Tenho uma tabela usuário, esta tabela contém os dados de login, senha, nome do usuário etc. Criei uma VO que representa todos os campos da tabela.
Tenho duas páginas: Uma de login e uma de cadastro, então terei dois ActionForms:
a. LoginForm: Contém os atributos login e senha
b. CadstroForm: Contém todos os atributos da VO/Campos da tabela.
A Necessidade de ter dois forms é para a configuração do validate…
Preciso mesmo ter dois forms?
Vocês recomendam criar uma ActionForm para cada formulário da tela?
Se não, como configurar o validate para utilizar o mesmo ActionForm em dois forms diferentes?
Você pode utilizar Form Dinâmicos atravês do DynaActionForm ou DynaValidatorForm, seta os objetos no seu struts-config.xml e fazendo a validação no servidor e no cliente através do validation.xml
Ps.: Validação no cliente, do Form que está sendo validado no validation.xml através do html:javascript
DynaActionForm/DynaValidatorForm substitui ActionForm? Com este poderei utilizar um mesmo Form para vários formulários?
the_negao
O DynaActionForm é implementação do ActionForm e DynaValidatorForm é uma implementação do DynaActionForm
Através do validation.xml você pode criar constantes (regras globais) e setar essa regra em cada form…
Agora, para que um validate seja comum a dois forms, só se eles possuírem os mesmos campos e o mesmo nome de form, fora isso eu desconheço!
aconstantino
É exatamente esta a minha dúvida… Preciso saber se posso utilizar um ActionForm para dois formulários? Se é possivel mapear no validation.xml duas regras de validação para um mesmo form?
Qual a melhor forma de fazer?:
Criar dois forms ou mapear no struts-config.xml dois formbeans com o mesmo ActionForm?
[]´s
aconstantino
Hum… respondeu as minhas dúvidas…
valeww
[]´s
M
mcsouza
Sim, pode usar o mesmo actionform para dois formulários.
Até onde sei a regra de validação é do actionform, assim só pode haver uma regra por ActionForm.
Como prática, use um form para cada tela. O ActionForm está na sua camada de visão e deve ser usado para representação desta camada (tela).
Agora, existem situações onde um mesmo ActionForm atende uma ou mais Actions, como no caso do CRUD, onde o mesmo form pode servir tanto para a tela de listagem como para a tela de edição. Neste caso, a validação do formulário será disparada apenas quando a action de edição for invocada. No entanto, se houver uma validação diferente na tela de listagem, como campos obrigatórios em filtro por exemplo, o ideal é que seja criado um outro form com validações especificas para cada action.
Faça uso dos DynaValidationForm e de alguma ferramenta para edição dos xml de configuração e esqueça as codificações de classes de formulários.