Bom, eu estudei a apostila de struts da Caelum, e lá existe um exemplo de como deve ser criada uma ActionForm
package br.com.caelum.struts.form;
import org.apache.struts.action.*;
public class ContatoForm extends ActionForm {
private Contato contato = new Contato();
public Contato getContato() {
return this.contato;
}
}
Mapeando...
<formbeans>
<formbean name="ContatoForm" type="br.com.caelum.struts.form.ContatoForm"/>
</formbeans>
recuperando Valores...
<html:form action="/novoContato" focus="contato.nome">
}
Porém, ao ler um tutorial muito indicado, “tirando o máximo de struts”, o autor deixa claro que uma das boas práticas em se usar o framework struts é justamente “não criar classes java para os form-beans”, sendo somente necessário mapear o ActionForm usando uma DynaValidatorForm.
Então, gostaria da opnião dos mais experientes. Qual é a melhor maneira?
E na minha opinião é bem melhor utilizar esta abordagem.
Um outro ponto interessante seria voce dar uma olhada em DispatchAction.
aqui tem um exemplo de como utilizar:
Se não me engano o DynaActionForm tem problemas com upload de arquivos
A melhor abordagem que vi ao se utilizar Struts 1.x é algo semelhante ao que ocorre com JSF e seus managed beans, ou seja, você fica com uma classe que representa seu Action+ActionForm. É muito mais simples e produtiva, seu controller é praticamente um managed bean. Além do mais fica bem mais fácil caso futuramente se pretenda migrar para JSF
O exemplo petshop do iBatis tem o exemplo com essa abordagem, muito bacana mesmo. Eu o utilizei e adaptei algumas coisas para minhas necessidades, como o esquema de validação (commons-validator) por exemplo, ficou muito bom.
Utilizar Struts da forma convencional é trabalhoso demais.
Vale a pena dá uma olhada.