Java Frameworks Developer
Pรกgina 1
Java Frameworks Developer
Pรกgina 2
Java Frameworks Developer
Java Frameworks Developer (Struts/Hibernate/Spring)
Autores: Ing. Aguirre Rodríguez César Edinson Ing. Santos Fernández Juan
Página 3
Java Frameworks Developer
© Bubok Publishing S.L., 2012 1ª edición
Página 4
Java Frameworks Developer
ISBN: Impreso en PerĂş / Printed in Peru Impreso por
PĂĄgina 5
Java Frameworks Developer
Dedicatoria
Pรกgina 6
Java Frameworks Developer
Pรกgina 7
Java Frameworks Developer
Índice
Capítulo 1: .................................................................................10 1.1 Introducción a la arquitectura MVC .................................10 1.2. Introducción a Struts .......................................................12 1.3. Tags de Struts..................................................................13 1.4. Archivos de configuración (struts-config.xml) .................17 1.5. API de Struts...................................................................19 1.6. Creación de un proyecto Web con Struts.........................22 1.7. Nuestro primer Hola mundo con Struts ..........................30 1.8. Ejercicio 1 - Acciones con Struts .....................................35 1.9. Ejercicio 2 - Acciones con Struts .....................................39
Página 8
Java Frameworks Developer
Pรกgina 9
Java Frameworks Developer
Capítulo 1: Struts 1.3 Framework
1.1 Introducción a la arquitectura MVC Modelo Vista Controlador (MVC) es un patrón o modelo de abstracción de desarrollo de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos. El patrón de llamada y retorno MVC, se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista. A continuación se muestra un diagrama sencillo que muestra la relación entre el modelo, la vista y el controlador.
Página 10
Java Frameworks Developer
Definiciones MVC Modelo: Esta es la representación específica de la información con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado. Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
Página 11
Java Frameworks Developer
Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.
1.2. Introducción a Struts Struts es una herramienta de soporte para el desarrollo de aplicaciones Web bajo el patrón MVC bajo la plataforma Java EE (Java Enterprise Edition). Struts se desarrollaba como parte del proyecto Jakarta de la Apache Software Foundation, pero actualmente es un proyecto independiente conocido como Apache Struts. Struts permite reducir el tiempo de desarrollo. Su carácter de "software libre" y su compatibilidad con todas las plataformas en las que Java Entreprise esté disponible lo convierten en una herramienta altamente disponible. Con la versión 2 del framework se introdujeron algunas mejoras sobre la primera versión, de cara a simplificar las tareas más comunes en el desarrollo de aplicaciones web, así como mejorar su integración con AJAX, etc. En el anexo se mostraran unos ejemplos como implementar la versión 2 del framework Struts Arquitectura de una aplicación web utilizando el framework de Struts
Página 12
Java Frameworks Developer
1.3. Tags de Struts La Vista se encuentra formada por un conjunto de pรกginas JSP. Struts provee soporte para construir aplicaciones multi-idioma, interacciรณn con formularios y
Pรกgina 13
Java Frameworks Developer
otras utilidades mediante la utilización de Tags especiales (TagLibraries). A continuación veamos un detalle de los Tags más utilizados al construir paginas JSP usadas en Struts
<html:base>
Genera el tag <base>. Este tag debe ser usado dentro del tag<head>.
<html:button> Genera el tag <input type="button">. Este tag debe ser usado dentro de un <form>. <html:cancel> Genera el tag <input type="submit"> y provoca que el servlet no invoque al método validate(). Este tag debe ser usado dentro de un <form>
Página 14
Java Frameworks Developer
<html:checkbox>
<html:checkbox> Genera <input type="checkbox">. <html:errors>
el
tag
Genera el c贸digo html para mostrar los errores que pueden ocurrir durante la invocaci贸n del m茅todo validate().
<html:form>
Genera <form>.
<html:hidden>
Es un elemento invisible Genera el tag <input type="hidden">.
<html:html>
Genera el tag <html>.
<html:img>
<html:link>
Un link a otro Sitio Genera un link HTML.
<html:password>
Genera <input para ingresar.
type="password">
P谩gina 15
Java Frameworks Developer
<html:radio>
Genera un radio button (<input type="radio">). <html:reset>
Genera <input type="reset"> <html:select> <html:options> <html:option> <html:select> Genera <select>.<html:options> Genera el codigo HTML para una lista de tags <option>. <html:submit> Genera <input type="submit"> para enviar los datos ingresados
Pรกgina 16
Java Frameworks Developer
<html:text>
Genera el tag <input type="text">. <html:textarea>
Genera el tag <textarea>.
1.4. Archivos de configuración (struts-config.xml) Además del descriptor de despliegue web.xml definido por la especificación JavaEE, una aplicación Struts requiere de otros archivos de configuración adicionales. El más importante de ellos es struts-config.xml, entre otros elementos, en él se registran y configuran los distintos objetos Struts que van a ser utilizados por la aplicación. Dentro del archivo <struts-config>, hay dos elementos importantes que son usados para describir nuestras acciones: <form-beans> Esta sección contiene nuestras definiciones de beans. Usamos un elemento <form-
Página 17
Java Frameworks Developer
bean> por cada bean de formulario, que tiene los siguientes atributos importantes: o name: Un identificador único para este bean, que será usado para referenciarlo en los correspondientes mapeos de acciones. Normalmente, es también el nombre del atributo de solicitud o sesión bajo el que se almacena este bean de formulario. o type: El nombre totalmente cualificado de la clase Java de nuestro bean de formulario <action-mappings> Esta sección contiene nuestras definiciones de acciones. Usamos un elemento <action> por cada una de nuestras acciones que queramos definir. Cada elemento action requiere que se definan los siguientes atributos: o path: El path a la clase action en relación al contexto de la aplicación. o type: El nombre totalmente cualificado de la clase Java de nuestra clase Action.
Página 18
Java Frameworks Developer
o name: El nombre de nuestro elemento <formbean> para usar con esta action.
1.5. API de Struts Las principales caracterĂsticas de este API son: ActionServlet. El componente Controlador del framework de Struts es la espina dorsal de todas las
PĂĄgina 19
Java Frameworks Developer
aplicaciones web de Struts y se puede considerar una fábrica de objetos Action para ejecutar la lógica requerida por la aplicación. Este servlet recibe todas las solicitudes de los clientes y delega el control de cada solicitud a una clase definida por el usuario del tipo org.apache.struts.action.Action. Las responsabilidades del ActionServlet se pueden resumir de la siguiente forma:
o Procesar las peticiones del usuario o Determinar qué es lo que desea hacer el usuario en base a la petición que realizó o Obtener datos del modelo (en caso de que se requiera) para darle una vista adecuada o Seleccionar la vista correcta para responder al usuario Action. Como acabamos de comentar, los objetos Action son los responsables de procesar los distintos tipos de peticiones que llegan a la aplicación. El principal método con que cuenta esta clase es execute(), método que será invocado por ActionServlet al transferir la petición al objeto. ActionForm. Los objetos ActionForm son un tipo especial de JavaBean que facilitan el transporte de datos entre las capas de la aplicación. Son utilizados por ActionServlet para capturar los datos procedentes de un formulario XHTML y enviárselos al objeto Action
Página 20
Java Frameworks Developer
correspondiente, todo ello sin recurrir a los incómodos request.getParameter(). Para ello, el programador deberá extender esta clase y proporcionar los datos miembros necesarios para el almacenamiento de los datos, así como los correspondientes métodos set/get que den acceso a los mismos. ActionMapping. Un objeto de tipo ActionMapping representa una asociación entre una petición y el objeto Action que la tiene que procesar. Contiene información sobre el path o tipo de URL que provoca la ejecución de la acción, así como de las posibles vistas que se pueden presentar al cliente tras su procesamiento. ActionForward. Como ya mencionamos al hablar de las ventajas de Struts, las aplicaciones que utilizan este framework trabajan con direcciones virtuales en vez de reales. Las direcciones virtuales, más conocidas en Struts como forwards, son manejadas desde código a través de objetos ActionForward.
Página 21
Java Frameworks Developer
Funcionamiento de una aplicación Struts.
1.6. Creación de un proyecto Web con Struts En nuestro primer ejemplo creamos nuestro primer proyecto llamado “HolaMundoStruts” para eso es necesario ejecutar myeclipse y se nos mostrar una pantalla de inicio
Página 22
Java Frameworks Developer
Crearemos nuestro primer proyecto Web
Y procedemos a registrar el nombre del proyecto y hacemos clic en el bot贸n Finish
P谩gina 23
Java Frameworks Developer
Y nos mostrara una ventana de confirmaciĂłn y hacemos clic en Yes
Seguidamente despuĂŠs nos mostrara el directorio de archivos del proyecto creado
Procedemos a levantar el servidor Web Apache Tomcat mostrado en el siguiente grafico
PĂĄgina 24
Java Frameworks Developer
Luego verificamos que el servicio de Tomcat este levantado en la parte inferio de myeclipse
DespuĂŠs ejecutaremos nuestro proyecto Web para visualizar es necesario hacer clic derecho en el proyecto, seleccionar Run As / MyEclipse Server Application
PĂĄgina 25
Java Frameworks Developer
Este proceso nos reiniciara el servidor Web Apache Tomcat y ademรกs nos permite visualizar la pรกgina Web de ejemplo
Pรกgina 26
Java Frameworks Developer
En el siguiente paso agregamos las librerías de Struts para eso es necesario guiarse de la siguiente gráfica.
Seleccionamos la opción Struts 1.3 y hacemos clic en Finish. El archivo struts-config.xml es el archivo de configuración de Struts en la cual nos permite navegar y declarar los actions y los actions forms.
Página 27
Java Frameworks Developer
Y a continuación nos muestra las librerías de Struts agregadas a nuestro proyecto.
Página 28
Java Frameworks Developer
En el siguiente grafico mostramos el archivo strutsconfig.xml en la cual nos servirá para poder declarar las acciones que deseamos llevar en nuestro proyecto Web, hacemos clic en la pestaña Source y nos visualizara los script de configuración
Página 29
Java Frameworks Developer
1.7. Nuestro primer Hola mundo con Struts En nuestra primer ejemplo editamos el archivo index.jsp y quedara de la siguiente manera. index.jsp
En el archivo de struts-config.xml procederemos a poner el path relativo a nuestra aplicación web “saludo”, en la cual será reenviada a la página “/saludo.jsp”.
Página 30
Java Frameworks Developer
struts-config.xml
Procederemos a crear la página web “saludo.jsp”. saludo.jsp
º
Página 31
Java Frameworks Developer
La pรกgina creada se agregara el siguiente mensaje como se ve a continuaciรณn saludo.jsp
Por ultimo creamos el paquete actions donde estarรกn todos los eventos del tipo actions de Struts
Pรกgina 32
Java Frameworks Developer
En el paquete actions hacemos clic derecho y seleccionamos en la opci贸n Class y creamos la clase ActionSaludo
P谩gina 33
Java Frameworks Developer
Agregamos las siguientes líneas de códigos en la clase ActionSaludo que tiene la misma estructura de servlet en la cual nos retorna el nombre “enviar” de la página donde será reenviado ActionSaludo.java
Procedemos a ejecutar el servidor Apache Tomcat hacemos clic derecho y nos vamos a Run As / MyEclipse Server Application y nos mostrar la ejecución dentro del mismo browser de MyEclipse.
Página 34
Java Frameworks Developer
1.8. Ejercicio 1 - Acciones con Struts En el siguiente ejercicio creamos un proyecto Web llamado “Ejemplo1Action”, agregamos las librerías de Struts 1.3. index.jsp
Página 35
Java Frameworks Developer
Agregamos las siguientes líneas de código en el path al archivo struts-config.xml struts-config.xml
Creamos una archivo llamado resultados.jsp dentro del directorios “/WEB-INF/”.
Página 36
Java Frameworks Developer
resultados.jsp
Luego crearemos nuestra clase LoginAction dentro del siguiente directorio “/src/action/”.
Página 37
Java Frameworks Developer
LoginAction.java
Ejecutamos el proyecto haciendo clic en el icono Run
.
Pรกgina 38
Java Frameworks Developer
1.9. Ejercicio 2 - Acciones con Struts En el siguiente ejercicio creamos un nuevo proyecto Web llamado “Ejemplo2Action”, luego agregamos las librerías de Struts 1.3.
Nos dirigimos al modo diseño del archivo strutsconfig.xml.
Página 39
Java Frameworks Developer
Hacemos clic en el icono Action dentro de la vista de diseño y nos mostrara la siguiente ventana de acciones.
Y nos mostrara el siguiente gráfico, si hace clic en la pestaña Source nos visualiza el código autogenerado. Después hacemos clic en el icono
JSP.
Página 40
Java Frameworks Developer
Hacemos clic en Finish y nos visualizara un nuevo componente en la ventana diseĂąo.
PĂĄgina 41
Java Frameworks Developer
Luego relacionamos desde la Clase LoginAction con el archivo login.jsp haciendo clic en el icono. Y nos mostrar una ventana en donde tenemos que ingresar el nombre del Forward: “mostrarFormulario”
Hacemos clic en Finish, después nos mostrara el siguiente diseño con el nombre del Forward ingresado
Página 42
Java Frameworks Developer
Si queremos ver el código autogenerado nos vamos a la pestaña Source.
Página 43
Java Frameworks Developer
Ahora abrimos el archivo login.jsp que se creó automáticamente en la ventana de diseño del archivo de configuracion
Página 44
Java Frameworks Developer
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam turpis eros, luctus ac volutpat id, egestas eu nibh. Fusce et dolor quis nisi tincidunt tincidunt rutrum non velit. Proin rhoncus sem vitae magna accumsan nec fermentum nibh iaculis. Curabitur nec purus vel ante hendrerit pharetra.
Pรกgina 45