Argumento de Apache Struts
Apache Struts es una herramienta de soporte con la que podrá crear aplicaciones web de forma sencilla, sólida y estable. Este entorno permite reducir el tiempo de desarrollo y se trata de un componente vital en muchas herramientas basadas en Java. Esta obra explica paso a paso el entorno de desarrollo llamado Struts y le muestra la infraestructura extensible a la que se presta, tanto para validaciones de entrada, gestión de errores, como para reporte y control de flujo. Además, a lo largo del libro encontrará una serie de ejercicios basados en supuestos reales con los que practicar y que le harán más ameno el aprendizaje. Este manual va dirigido a personas con diferentes habilidades como diseñadores web, analistas e ingenieros de sistemas y bases de datos.0Sobre el autor Sobre el revisor técnico Agradecimientos Parte I. Fundamentos de Struts 1. Introducción ¿Qué es una aplicación Web? ¿Qué puede hacer Struts por usted? Sobre usted ¿Cómo leer este libro? Enlaces útiles Código fuente 2. Revisión de Servlet y JSP Ejercicio 2: Instalación de Tomcat Fundamentos de los contenedores servlet Clases importantes de servlet JavaServer Pages (JSP) Análisis de Hello.jsp Últimos apuntes Enlaces útiles Resumen 3. Alcance de variables Ejercicio 3: Preguntas sobre alcances Funcionamiento interno de los alcances de sesión y de petición Resumen 4. Etiquetas personalizadas Principios de las etiquetas personalizadas Procesamiento de una etiqueta Las clases de gestión de Java Clases ayudantes El archivo TLD Ejercicio 4: Una etiqueta de conversión de temperaturas Paso 1: Preparar el entorno de desarrollo y los script Paso 2: Escritura del gestor de la etiqueta en Java Paso 3: Escritura del archivo TLD Paso 4: Corrección de web.xml Paso 5: Escritura del JSP Paso 6: Despliegue y prueba Herramientas Java profesionales Enlaces útiles Resumen 5. El patrón de diseño MVC La aplicación Web de registro Requisito 1 Requisito 2 Requisito 3 Requisito 4 Requisito 5 Ejercicio 5: Cuestionario sobre MVC ¿Qué hacer primero? Struts y el patrón MVC Ciclo de vida de una petición Struts Entornos de desarrollo para el modelo Enlaces útiles Resumen 6. Validación simple Procesamiento de validaciones simples Anatomía de ActionForm Uso de ActionErrors Ejercicio 6: ContactForm para un LILLDEP Paso 1: Preparar el entorno de desarrollo y los script Paso 2: Implementación de los accesores y los mutadores para ContactForm Paso 3: Implementación de validate() Paso 4: Implementación de reset() ¿Qué ha hecho por nosotros Struts hoy? Resumen 7. Procesamiento de la lógica de negocio 1, 2, 3, acción La ausencia de estado de Action Creación de subclases de Action Lógica de negocio en la aplicación Web de registro Validación compleja Transformación de datos Navegación Ejercicio 7: Implementación de ContactAction para LILLDEP Resumen 8. Etiquetas básicas de Struts Pasos del procesamiento de una página Evaluación, reemplazo y envío La Vista de la aplicación de registro Declaración e instalación de las bibliotecas HTML y Bean Visualización de texto estático Formularios y gestores Etiquetas de introducción de datos Visualización de errores Sinopsis de las bibliotecas HTML y Bean Ejercicio 8: Página de introducción de un contacto en LILLDEP Enlaces útiles Resumen 9. Configuración de Struts La estructura de struts-config.xml Configuración de la aplicación de registro Declaración de los bean de formulario Declaración de excepciones globales Declaración de redirecciones globales Declaración de gestores de formulario Redirecciones Declaración del controlador Recursos de mensajes Declaración de complementos Ejercicio 9A: Configuración de LILLDEP Reutilización de código Ejercicio 9B: La página MNC Resumen 10. Más etiquetas Buenas prácticas Las 2 + 1 bibliotecas restantes de Struts La biblioteca de etiquetas Logic Iteración Propiedades simples, anidadas, indexadas y mapeadas Procesamiento condicional Control de flujo La biblioteca de etiquetas Nested JSTL y Struts Lenguaje de Expresión (EL) Uso de EL La etiqueta La etiqueta Las etiquetas y ... Extensiones EL de Struts Ejercicio 10A: La página que devuelve la lista completa de LILLDEP Paso 1: Completar ListingAction Paso 2: Completar la página listing.jsp Paso 3: Correcciones en web.xml Paso 4: Correcciones en struts-config.xml Ejercicio 10B: Simplificación de ContactForm Paso 1: Mejora de ContactForm Paso 2: Mejora de full.jsp y mnc.jsp Ejercicio 10C: Uso de JSTL Paso 1: Instalamos las librerías JSTL y EL de Struts Paso 2: Mejora de web.xml Paso 3: Mejora de listing.jsp Enlaces útiles Resumen 11. Carga de archivos Carga de un número fijo de archivos de una vez Carga de cualquier número de archivos Ejercicio 11: Importado de datos a LILLDEP Paso 1: Completar ImportForm Paso 2: Completar import.jsp Paso 3: Completar ImportAction Paso 4: Actualización de struts-config.xml Paso 5: Compilamos, volvemos a desplegar la aplicación y la probamos Enlaces útiles Resumen 12. Internacionalización Codificación de caracteres, Unicode y UTF-8 Localizaciones Procesamiento de la entrada Localización de validaciones Localización de la salida Procesamiento de los archivos Application.properties traducidos Selección de una localización desde el navegador Intercambio de localizaciones por medio de un vínculo Cambio de localización con LocaleAction Ejercicio 12: LILLDEP aplicado al mercado Malasio Enlaces útiles Resumen 13. Ejercicio de repaso: Edición de contactos en LILLDEP Implementación de la funcionalidad de edición Parte II. Struts avanzado 14. Tiles Instalación de Tiles Tiles y la maquetación Uso de hojas de estilo y maquetas Componentes de Tiles Creación de un componente Tiles Ejemplo: El componente de entrada a una aplicación Obtención de datos de formularios externos Ejercicio 14: La funcionalidad de búsqueda Paso 1: Configuración de Tiles Paso 2: Escritura del Controlador Paso 3: Configuración del mapeado de la acción de Tiles Paso 4: Cambios en ContactAction Paso 5: Escritura de los JSP de Tiles Paso 6: Escritura de la definición de tiles Paso 7: Incrustación del componente dentro del JSP Paso 8: Despliegue y prueba Resumen 15. Validator Declaración del complemento Validator Principios de validación DTD Uso de Validator Ejemplo: Validación de RegistrationForm Validación de propiedades anidadas e indexadas Uso de constantes Validaciones en el lado del cliente Las validaciones estándar Uso de validwhen Uso de validwhen con campos indexados Inclusión de validaciones personalizadas Implementación de validate() Extensión de Validator Implementación del gestor Java Migración de código antiguo Localización de validaciones Ejercicio 15: Uso de Validator en LILLDEP Enlaces útiles Resumen 16. Formularios dinámicos Declaración de formularios dinámicos Declaración de propiedades simples Declaración de propiedades indexadas Declaración de propiedades mapeadas Declaración de propiedades anidadas Acceso a propiedades dinámicas Transferencia de propiedades al bean de Java Desventajas de los formularios dinámicos Cuándo utilizar formularios dinámicos Validación de formularios dinámicos La aplicación de registro con formularios dinámicos ¡Mira mamá..., sin manos!: LazyValidatorForm (Struts 1.2.6+) Desventajas del uso de LazyValidatorForm El poder oculto de BeanValidatorForm (Struts 1.2.6+) Ejercicio 16: Eliminación de los contactos seleccionados en LILLDEP Paso 1: Declaración del bean de formulario SelectionForm Paso 2: Arreglo de listing.jsp Paso 3: Creación de la acción para eliminar los contactos Enlaces útiles Resumen 17. Popurrí PropertyUtils Uso de PropertyUtils En dos palabras... DownloadAction (Struts 1.2.6+) LocaleAction IncludeAction y ForwardAction En dos palabras... LookupDispatchAction DispatchAction MappingDispatchAction En dos palabras... Uso de Global Forwards Bitácora En dos palabras... Uso de comodines En dos palabras... División de struts-config.xml En dos palabras... Enlaces útiles Resumen 18. Ejercicios de repaso: La potencia de las colecciones Ejercicio 18A: La página principal Ejercicio 18B: La página para crear una nueva colección Ejercicio 18C: La página con el listado de colecciones Ejercicio 18D: Eliminación de los contactos seleccionados Ejercicio 18E: Inclusión de los contactos seleccionados Ejercicio 18F: Búsquedas Resumen 19. Desarrollo de complementos La tarea a mano Itinerario de implementación Proceso que sigue Struts para procesar los Form Bean Estructura de un complemento Implementación de DynaFormsPlugIn Lectura de XML con Digester de Apache Implementación de DynaFormsLoaderFactory DefaultDynaFormsLoader Ejercicio 19: Prueba completa del complemento DynaForms Ejercicio extra: Gestión de Descripción de la solución Enlaces útiles Resumen 20. JavaServer Faces y Struts Shale Visión general de JSF Visión general de Shale Entonces, aprender Struts ¿es una pérdida de tiempo? JavaServer Faces (JSF) Componentes gráficos del lado del servidor Ciclo de vida del procesamiento de una petición Eventos y gestores de eventos JSF Tag Libraries Vinculación de valor y método Navegación Ejemplo: La aplicación de registro Configuración de JSF Recursos de mensaje El bean de apoyo del usuario La Vista ¿Qué es lo que viene ahora? Ejercicio 20: La librería de integración entre Struts y Faces Paso 1: Preparación del entorno de desarrollo Paso 2: Hay que instalar JSF, JSTL y la biblioteca de integración entre Struts y Faces Paso 3: Edición de web.xml y struts-config.xml Paso 4: Migración de las páginas JSP de Struts Paso 5: Migración de las etiquetas y las entradas de datos Paso 6: Hacer que los puntos de entrada se redirijan a *.faces Paso 7: Arreglo de las acciones si fuese necesario Paso 8: Escritura de las declaraciones necesarias En dos palabras... Introducción a Struts Shale ViewController Gestor de diálogos Integración con Validator Integración con JNDI Vistas reutilizables con Clay Soporte para Ajax en el lado del servidor Entornos de pruebas unitarias JSF contra Shale contra Struts Enlaces útiles Resumen Parte III. Apéndices A. Entornos para implementar el Modelo Obtención del software Lisptorq Ejercicio A: Prueba de Lisptorq Paso 1: Preparación del entorno de desarrollo Paso 2: Escritura del esquema de la base de datos Paso 3: Especificación de la configuración de la base de datos Paso 4: Generación de los archivos Java Paso 5: Escritura de un programa de prueba Paso 6: Inicialización de la base de datos Paso 7: Ejecución de un programa de prueba Uso de Torque para la aplicación de registro Uso de Hibernate para la aplicación de registro En dos palabras... Auto generación de clases de Modelo LILLDEP Enlaces útiles B. Clases de uso común javax.servlet.http.HttpServletRequest javax.servlet.http.HttpSession org.apache.struts.action.ActionMessage org.apache.struts.action.ActionMessages org.apache.struts.action.ActionErrors org.apache.struts.action.ActionMapping org.apache.struts.action.Action org.apache.struts.action.ActionForm org.apache.struts.upload.FormFile org.apache.struts.tiles.ComponentContext org.apache.struts.action.ExceptionHandler C. Referencia de etiquetas de Struts La biblioteca de etiquetas HTML La biblioteca de etiquetas Bean La biblioteca de etiquetas Logic La biblioteca de etiquetas anidadas La biblioteca de etiquetas de Tiles D. Respuestas Capítulo 1: Introducción Capítulo 3: Alcance de variables Capítulo 5: El patrón de diseño MVC Capítulo 6: Validación simple Ejercicio 8: Página de introducción de un contacto en LILLDEP Ejercicio 9A: Configuración de LILLDEP Ejercicio 9B: La página MNC Capítulo 10: Más etiquetas Ejercicio 10A: La página que devuelve la lista completa de LILLDEP Ejercicio 10B: Simplificación de ContactForm Ejercicio 11: Importación de datos a LILLDEP Capítulo 13: Ejercicio de repaso Capítulo 14: Tiles Capítulo 15: Validator Capítulo 17: Popurrí &n alfabético