Introdução ao Struts 1.x – Parte I
Decidi que antes de começar com Hibernate ou JSF, seria interessante começar pelo framework mais popular entre aplicações do passado. Apesar de parecer inútil, conhecer como funciona o Struts é uma boa oportunidade para entrar no mundo dos frameworks. O fator que mais pesou na minha escolha é o fato de que o Struts é realmente simples comparado a outros frameworks. Gostaria de lembrar que não sou nenhum especialista em Struts e que tudo que estou escrevendo aqui é o que aprendi nestes últimos dias.
Mas o que é um framework?
Framework é um conjunto de classes que foram desenvolvidas para resolver determinado problema. Entre esses problemas podemos destacar a manutenção de aplicações complexas, persistência de dados, realização de testes unitários, enfim tudo que você possa imaginar possui um framework.
Como o Struts é organizado
O Struts é formado pelos seguintes componentes:
Action Servlet: É o cérebro do Struts, é ele que controla todo o fluxo da aplicação, lifecycle dos objetos, tudo. Existe apenas um para a aplicação inteira e não precisa ser escrito, apenas declarado no web.xml.
Form Beans: Todos os formulários da aplicação possuem seu próprio Form Bean. Ele possui como atributo os campos do formulário, os quais são preenchidos pela Action Servlet utilizando os parâmetros passados pelos forms HTML. Para isto acontecer é necessário que os atributos do Form Bean possuam o mesmo nome dos parâmetros HTML. O Form Bean possui um método chamado validate() e é através dele que o Struts faz a validação dos campos.
Action: Cada Action é responsável por uma simples função de um caso de uso, como por exemplo cadastrar um usuário, remover um usuário, etc. Possuem um método chamado execute(), que é o local ideal para realizar chamadas à classes responsáveis pelas regras de negócio.
Struts-config.xml: É o arquivo responsável pelo mapeamento de toda a aplicação, é aqui que indicamos qual Form Bean pertence a cada Action, qual arquivo é responsável pelos textos que aparecem na aplicação, mapeamos uma Action para uma view, ou para outras Actions. Enfim é aqui que organizamos toda a aplicação.
Por enquanto é isso, até!