Dúvida Struts

6 respostas
aconstantino

Olá Pessoal,

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?

6 Respostas

the_negao

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

Dê uma lida sobre DynaValidatorForm em:
http://struts.apache.org/1.2.9/api/org/apache/struts/validator/DynaValidatorForm.html

Espero ter sido claro… :slight_smile:

aconstantino

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
  1. Sim, pode usar o mesmo actionform para dois formulários.
  2. 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.

Criado 7 de agosto de 2006
Ultima resposta 7 de ago. de 2006
Respostas 6
Participantes 3