Sou novato no mundo Java e, mais especificamente, com o Struts. Mas, gostaria que me ajudassem numa dúvida.
Suponha uma página (JSP) contendo um formulário. Quando este formulário for submetido, o ActionServlet do Struts, dentre outras coisas, procurará o método “execute” da action relativa àquele formulário, certo? Mas na ocasião em que o JSP é carregado no browser (sem haver submissão do formulário suposto), esse método “execute” da Action também é executado?
quando vc montar o html:form no seu JSP, vc vai determinar a action, certo? pois então, la vc vai estabelecer qual Action sera chamada, entao, ao fazer o submit desse html:form o execute() da Action q vc especificou sera chamado…
kra nao sei se entendi bem… mas vamos ao que acontece:
vc envia o formulario para uma url que se usou a extensão padrão ser algo.do
no web xml vc disse que *.do o struts tratar… logo, ele vai procurar uma mapeamento no struts.conf, que dira qual classe usar…
ele vai nesta classe(lembrando que essa classe extend Action) e executa o metodo execute dela…
depois da logica vc returna para uma pagina que esta definida no struts.conf
A situação é essa que vcs descreveram. Porém a dúvida é:
>>ele vai procurar uma mapeamento no struts.conf, que dira qual classe >>usar…
>>ele vai nesta classe(lembrando que essa classe extend Action) e executa o >>metodo execute dela…
O processo acima descrito acontece tanto antes quanto depois do formulário ser enviado, ou ele acontece apenas quando o formulário é enviado?
Sempre soube que esse processo acontece na submissão do formulário. Mas me disseram que, durante a renderização do JSP (ou seja, quando o formulário é apenas EXIBIDO no browser e não enviado para a url) que contém o formulário, o mesmo processo acontece. Isto é verdade?
vc precia declarar o formulario q vc esta utilizando no struts-config tb para q o struts consiga utiliza-lo e valida-lo…
agora, caso vc precise q algum dado do form va preenchido com algum dado do banco, por exemplo, vc vai ter uma Action q popula o form e da o foward para a tela…nesse caso, uma Action eh executada para montar o form, e depois vc tera uma segunda Action q recebe esse form a trata ele da forma como for necessaria para vc…isso pode acontecer por exemplo, se vc tem um combo-select, q as opções não ficam fixas na JSP, e sim no banco, como um Tipo de Cadastro, por exemplo…
mas se o seu form for simples, vc simplesmente declara ele no struts-config como DynaActionForm, por exemplo…monta sua JSP com o form de acordo, e declara a action dentro da tag form:action e manda o submit…
espero q tenha ajudado…
ps: o livro Struts in Action eh muito bom para vc entender todo esse processo…a versão em ingles eh bem melhor q a traduzida, mas em portugues tb serve…