miércoles, 2 de julio de 2008

Poniendo en práctica los STRUTS

Partiendo del proyecto 'eticom-struts-servlet', vamos a realizar un formulario de saludo por el cual nos envíe a una página en concreto.

Lo primero que hago es añadirle una dependencia: en el query -> "struts struts".

Seguidamente añadimos al web.xml (archivo que describe la aplicación web) el Servlet de Struts, así como el su mapeo a todas aquellas solicitudes con terminación '.do', que son las que struts entiende que son un formulario, ya que en un principio, struts estaba orientado únicamente a formularios. También le añadimos una etiqueta 'load-on-startup, que sirve para que cuando arranquemos el jetty, se genere el servlet en ese mismo momento:

Así queda el web.xml.

Después creo el archivo de configuración de struts, al que hay que llamar 'struts-config.xml', y que hay que colocar en el directorio WEB-INF:
Ahora voy a crear el formulario en el archivo 'helloWorldStruts.jsp', empleando para ello etiquetas de struts. Esta página es la que enviará el action de struts del que hablé al principio, y que me mandará a una u otra página.
Creo otro jsp (hello.jsp) donde aparecerá la información generada por el formulario, siempre que en el mapping del action que tendremos que añadir después a 'struts-config.xml', el name sea "ok". Se podría enviar la información a cualquier página jsp, con sólo añadirle otra etiqueta forward que haga el reenvío dependiendo del nombre del action, pero esto se verá un poco más abajo.
Seguidamente hay que crear la clase java (un javabean) que va a representar la información que viene del formulario, con sus métodos getter y setter, los cuales representan los campos del formulario que se esperan.
Esta clase (SaludoForm.java) tiene que heredar de la clase "org.apache.struts.action.ActionForm".

La acción que se va a ejecutar al enviar el formulario es una clase java que hereda de
"org.apache.struts.action.Action" y que sobreescribe el método 'public ActionForward execute'. En esta clase (saludoAction.java) creo un objeto 'SaludoForm' y le añado el nombre que viene del textbox del formulario. El método de la clase, al devolver un ActionForward, le mando "ok", que es lo que a continuación vamos a utilizar como nombre identificador para que nos reenvíe a otro jsp, en este caso a 'hello.jsp', creado previamente. En definitiva, esta clase tiene la responsabilidad de dirigir la acción hacia la vista correspondiente en función del desarrollo de la invocación del método.

Por último hay que indicarle al archivo de configuración de struts (
'struts-config.xml'), que la aplicación tiene una nueva acción que recibe un formulario (form-bean) y que la recibe una acción (action). Corro el jetty para ver que todo va bien.

Proyecto ClubDeMayores

No hay comentarios: