In Java, Programação, Struts

Dicas para Struts 1.x

Posted July 10th, 2008 by Rodrigo Lazoti.

Como ainda vejo muitos desenvolvedores que utilizam de alguma forma o framework Struts 1.x em projetos pessoais ou profissionais, ou desenvolvedores que estão aprendendo Java e optam por aprender Struts. Resolvi deixar algumas dicas quem podem ajudar o desenvolvimento de aplicações que utilizam este framework.

Essas dicas não são novas e muito menos revolucionárias, até porque este framework já cumpriu o seu papel e hoje em dia já existem inúmeros outros framework que funcionam ou melhor ou de forma equivalente ao Struts 1.x!

Iniciando as dicas:

  1. Vou começar indicando o uso de DynaActionForm em substituição ao ActionForm, imagine ter uma classe Java para cada formulário de seu projeto? Teríamos inúmeras classes java que podem ser substituídas por mapeamento XML do formulário no arquivo de configuração do struts, o struts-config.xml.Exemplo de um formulário configurado no struts-config.xml utilizando DynaActionForm:
    <form -bean name="UsuarioForm" type="org.apache.struts.action.DynaActionForm">
    <form -property name="Nome" type="java.lang.String"/>
    <form -property name="Login" type="java.lang.String"/>
    <form -property name="Senha" type="java.lang.String"/>
    </form>
    
  2. Uma outra dica para economizar classes em java é ao invés de estender suas Actions da classe Action e assim ter uma classe para cada ação executada, estender da classe DispatchAction, assim pode-se utilizar mais de uma ação dentro de uma classe java.Classes Java estendendo de Action:
    //arquivo  MinhaAction1.java
    public class IncluirUsuario extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,                          HttpServletResponse response) throws Exception {
    // conteudo da action
    return mapping.findForward("listaUsuario");
    }
    }
    
    //arquivo  MinhaAction2.java
    public class AlterarUsuario extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,                          HttpServletResponse response) throws Exception {
    // conteudo da action
    return mapping.findForward("listaUsuario");
    }
    }
    

    Agora uma classe Java estendendo de DispatchAction e contendo as mesmas duas ações:

    public class Usuario extends DispatchAction {
    
    public ActionForward incluir(ActionMapping mapping, ActionForm form, HttpServletRequest request,                          HttpServletResponse response) throws Exception {
    // conteudo da action
    return mapping.findForward("listaUsuario");
    }
    
    public ActionForward alterar(ActionMapping mapping, ActionForm form, HttpServletRequest request,                          HttpServletResponse response) throws Exception {
    // conteudo da action
    return mapping.findForward("listaUsuario");
    }
    }
    
  3. Para colocar o foco em seu input quando o formulário carrega é bem simples basta fazer o seguinte:
    <html :form action="UsuarioAcion" focus="Nome">
    <html :text property="Nome"/>
    </html>
    
  4. Precisa limpar os dados de seu DynaActionForm ou DynaValidatorForm? Simples faça assim dentro de sua Action:
    DynaActionForm formulario = (DynaActionForm) form;
    formulario.getMap().clear();
    
  5. Deixarei um alguns links interessantes de como utilizar a validação server-side do próprio Struts, como utilizar Tiles em conjunto com Struts para compor seu layout de páginas entre outras dicas. Documentação do Struts.
    Struts Validator Framework.
    Developing Simple Struts Tiles Application.

Related Posts

  1. Autenticação com Jboss Seam
  2. Testes unitários com TestNG
  3. Orientação a objetos em Javascript – Herança

7 responses to Dicas para Struts 1.x

  1. Rafael Salerno says:

    E o Struts 2 ????

  2. Rodrigo Lazoti says:

    Rafael, não entendi sua pergunta.
    Mas de qualquer forma você pode ter mais informações sobre o Struts 2 nesse link: http://struts.apache.org/2.0.11.2/

  3. Rodrigo Plumari says:

    Fala Rodrigo. Bacana o esquema do DynaAction… descomplica bastante essa parte dos forms.

    E Rafael, o Struts 2 é bem mais descomplicado e interessante que o 1.x. E alem da fonte que o Rodrigo Lazoti te passou, leia coisas sobre o WebWork que é muito do Struts 2.

  4. Eduardo says:

    Cara, curti bastante seu blog. Continue postando dicas para o Struts.

  5. Rodrigo Lazoti says:

    Obrigado Eduardo, assim que possível farei novos posts sobre Struts.

    []‘s

  6. Samuel says:

    Dicas simples como o autor disse, mas de grande qualidade!

    Muito bom, parabéns e obrigado pelas informações!!

  7. Rodrigo Lazoti says:

    Obrigado Samuel! :)

Leave a response: