Introdução ao Struts 1.x – Parte II
Hoje, depois de muito tempo sem postar nada no blog, estava estudando e testando um projeto com Struts para entender melhor seu fluxo de controle e resolvi escrever este post explicando mais ou menos como ele funciona.
Como o Struts funciona
Agora que já sabemos com o Struts é organizado, fica mais fácil entender como ele funciona. Uma das coisas mais importantes é entender que uma Action Servlet não é a mesma coisa que uma Action. Toda aplicação possui apenas uma Action Servlet, que recebe todas as requisições feitas para a nossa aplicação. Essas requisições sempre vêm acompanhadas de uma Action, a qual informa a Action Servlet se possui um Form ou não. Caso a Action possua um Form, a Action Servlet executa o método validate() do Form e através deste método é feita a validação do formulário (saber se algum campo veio nulo, se não respeita a quantidade mínima de caracteres, etc). Caso este formulário encontre algum erro, ele informa a Action Servlet, que a encaminha para uma view onde serão exibidas as mensagens de erro. Se nenhum erro for encontrado, ou se a Action não possui um Form, a Action Servlet executa o método execute() da Action. Ao final deste método, é retornado para a Action Servlet qual o próximo destino, o que pode ser uma simples página de view, como outra Action.
Esta troca de informações entre a Action e a Action Servlet é feita através do struts-config.xml, mostrarei em um post futuro as principais tags dele.
Podemos resumir a maneira como o Struts trabalha assim:
A – Request chega na Action Servlet
B – Action Servlet verifica no struts-config se esta Action possui um Form.
C – Método validate() do Form é executado, caso ocorra algum erro, retorna para a view determinada no XML.
D – Método execute() da Action é executado e retorna qual o destino da Action.
E – Vai para a view.
Pode parecer um pouco confuso, mas quando começamos a mexer com o Struts entendemos rapidamente como ele funciona. Para quem quiser saber mais sobre o Struts, estou indicando este link do site oficial.