AUTOR/ES: Donald Brown , Chad Michael Davis y Scott Stanlick
ISBN: 9788441524989
AÑO: 2008
EDICION: 1ª
IDIOMA: Castellano
ENCUADERNACIÓN: Rústica Hilo
PÁGINAS: 512
DIMENSIONES: 17,6 x 22,5 cm.
PESO: 830
añadir libro al carrito
Pedidos superiores a 48€ (sin gastos envío) - España
ver carrito
recomendar este libro
recomendar la web
PUNTOS CLAVE: Struts es una herramienta de soporte para el desarrollo de aplicaciones Web bajo la plataforma Java, que permite optimizar los tiempos de trabajo. Su carácter de software libre y su compatibilidad con todas las plataformas en que Java Entreprise está disponible, lo convierte en una herramienta altamente aprovechable. En sus inicios Struts transformó el desarrollo Web en Java gracias a un marco de trabajo sencillo que permitía resolver los problemas comunes. Sin embargo, ahora estos problemas son más complejos y el nuevo Struts 2, equipado con un motor moderno, ofrece novedosos componentes y soporte a lo largo de todo el ciclo de desarrollo. Este libro ofrece de forma lógica y progresiva, los conocimientos necesarios para enfrentarse al trabajo con Struts 2. Los desarrolladores familiarizados con Struts 1 sabrán valorar las secciones detalladas sobre plug-ins, WebWork, plantillas FreeMarker y la migración a Struts 2.
INDICE: Agradecimientos. Sobre los autores. . Prólogo. . Introducción. Sobre este libro. Nuestra ruta de viaje. Convenciones. Código fuente. . Sobre la ilustración de cubierta. . Parte I. Struts 2: Un marco de trabajo novedoso. . 1. Struts 2: Un marco de trabajo de aplicación Web actual. Aplicaciones Web. Cómo utilizar la Web para construir aplicaciones. Un repaso al conjunto de tecnologías. Hypertext Transfer Protocol (HTTP). API Servlet de Java. Explorar el terreno. Vinculación de los parámetros de la petición y validación de datos. Llamadas a la lógica de negocio y a la capa de datos. Presentación e internacionalización. Marcos de trabajo para aplicaciones Web. ¿Qué es un marco de trabajo?. Un marco de trabajo automatiza las tareas comunes. Un marco de trabajo ofrece una solución de arquitectura. ¿Por qué utilizar un marco de trabajo?. El entorno Struts 2. Breve historia de Struts 2. Struts 2 desde las alturas: El patrón MVC. El controlador Filterdispatcher. Modelo-Acción. Vista-Resultado. Funcionamiento de Struts 2. Interceptores. ValueStack y OGNL. Resumen. . 2. Bienvenidos a Struts 2. Arquitectura declarativa. Dos tipos de configuración. Configuración del marco de trabajo. Declaración de la arquitectura de una aplicación. Dos mecanismos para declarar una arquitectura. Arquitectura declarativa basada en XML. Arquitectura declarativa basada en anotaciones Java. ¿Qué método debemos utilizar?. Componentes inteligentes predeterminados. Un saludo rápido. Cómo desplegar la aplicación de ejemplo. Diseño de una aplicación Web Struts 2. La aplicación HelloWorld. Guía de usuario HelloWorld. Detalles de HelloWorld. HelloWorld mediante anotaciones. Resumen. . . Parte II. Conceptos básicos: Acciones, interceptores y conversión de tipos. . 3. Acciones de Struts 2. Las acciones de Struts 2. ¿Qué hace una acción?. Las acciones agrupan a la unidad de trabajo. Las acciones ofrecen una ubicación para la transferencia de datos. Las acciones devuelven una cadena de control para el enrutamiento de resultados. Cómo empaquetar acciones. La aplicación Struts 2 Portfolio. Organización de los paquetes. El uso de los componentes del paquete struts-default. Cómo implementar acciones. La interfaz optativa Action. La clase ActionSupport. Validación básica. Cómo utilizar lotes de recursos para el texto de mensajes. Transferencia de datos hacia objetos. Propiedades JavaBeans respaldadas por objetos. Acciones ModelDriven. Conclusiones sobre el uso de objetos de dominios para la transferencia de datos. La carga de archivos. Cómo obtener soporte implícito a través del paquete struts-default. ¿Cuál es la función del interceptor fileUpload?. Código de ejemplo de Struts 2 Portfolio. Cargar varios archivos y otros ajustes. Resumen. . 4. Añadir flujo de trabajo con interceptores. ¿Por qué es necesario interceptar las peticiones?. La limpieza del MVC. Ventajas del uso de interceptores. Cómo desarrollar interceptores. Los interceptores en acción. El "jefe": ActionInvocation. Cómo se disparan los interceptores. Interceptores predefinidos de Struts 2. Interceptores de utilidades. Timer. Logger. Interceptores de transferencia de datos. Params (defaultStack). Static-params (defaultStack). Autowiring. Servlet-config (defaultStack). FileUpload (defaultStack). Interceptores del flujo de trabajo. Workflow (defaultStack). Validation (defaultStack). Prepare (defaultStack). ModelDriven (defaultStack). Interceptores diversos. Exception (defaultStack). Token y token-session. Scoped-modelDriven (defaultStack). ExecAndWait. Pilas predeterminadas. La declaración de interceptores. Declaración de interceptores individuales y pilas de interceptores. Estructura del documento XML. Cómo vincular los interceptores a las acciones. Configuración y borrado de parámetros. Cómo crear nuestro propio interceptor. Implementación de la interfaz del interceptor. Construcción de AuthenticationInterceptor. Resumen. . 5. La transferencia de datos: El lenguaje OGNL y la conversión de tipos. Transferencia de datos y conversión de tipos: Tareas comunes de un dominio de aplicaciones Web. OGNL y Struts 2. ¿Qué hace el lenguaje OGNL?. El lenguaje de expresiones. Convertidores de tipos. ¿Qué lugar ocupa el lenguaje OGNL dentro del marco de trabajo?. Entrada de datos. Salida de datos. Convertidores de tipos implícitos. Conversiones preparadas. Cómo vincular nombres de campos del formulario a propiedades mediante expresiones OGNL. Primitivos y clases wrapper. Cómo gestionar parámetros de petición multivalor. Arrays. Listados (List). Mapas (Map). Personalización de la conversión de tipos. Implementación de un convertidor de tipos. Conversión entre String y Circle. Configuración del marco de trabajo para el uso del convertidor personalizado. Convertidores específicos para una propiedad. Convertidores de tipos globales. Resumen. . . Parte III. La construcción de la vista: Etiquetas y resultados. . 6. Cómo construir una vista: Las etiquetas. Introducción. ActionContext y el lenguaje OGNL. Selección del objeto raíz para el lenguaje OGNL. ValueStack: Un objeto virtual. Un resumen de las etiquetas de Struts. La sintaxis de la API de etiquetas de Struts 2. Sintaxis JSP. Sintaxis Velocty. Sintaxis Freemarker. Cómo utilizar el lenguaje OGNL para configurar atributos en las etiquetas. Atributos String y no String. Cómo forzar la resolución OGNL. Etiquetas de datos. La etiqueta property. La etiqueta set. La etiqueta push. La etiqueta bean. La etiqueta action. Etiquetas de control. La etiqueta iterator. Cómo se utiliza IteratorStatus. Etiquetas if y else. Etiquetas misceláneas. La etiqueta include. La etiqueta URL. Etiquetas i18n y text. La etiqueta param. Cómo utilizar JSTL y otras etiquetas nativas. Breve manual sobre el lenguaje de expresiones OGNL. ¿Qué es el lenguaje OGNL?. Características del lenguaje de expresiones utilizadas frecuentemente en Struts 2. Cómo referenciar propiedades bean. ¿Configurar u obtener?. Colecciones de Java. Listas y arrays. Mapas. Colecciones de filtrado y proyección. Características avanzadas del lenguaje de expresiones. Literales y operadores. Literales y operadores. Llamadas a métodos. Acceso a campos y métodos estáticos. Resumen. . 7. Etiquetas de componentes UI. ¿Por qué son necesarias las etiquetas de componentes UI?. Algo más que simples elementos de formulario. Generación del etiquetado HTML. Cómo vincular campos de formulario a propiedades del ValueStack. Integración con la conversión de tipos, la validación, y la internacionalización. Etiquetas, plantillas y temas. Etiquetas. Plantillas. Temas. Modificación del tema. Referencia de etiquetas de componentes UI. Atributos comunes. Componentes sencillos. El componente head. El componente form. El componente Textfield. El componente password. El componente textarea. El componente checkbox. Componentes respaldados por colecciones. El componente select. El componente radio. El componente checkboxlist. Prepoblamiento mediante caracteres respaldados por colecciones. Componentes extra. El componente label. El componente hidden. El componente doubleselect. Resumen. . 8. Resultados. Vida después de las acciones. Más allá de la página: Cómo utilizar resultados personalizados para construir aplicaciones Ajax con Struts 2. Implementación de un tipo de resultados JSON. Un cliente Ajax para demostrar nuestro resultado. Codificación de JSONResult. Un cliente Ajax. La acción. Declaración y uso del tipo jsonresult. Tipos de resultados más comúnmente utilizados. RequestDispatcher (dispatcher). El corazón servlet del resultado dispatcher. Flujo de trabajo normal: Despachar como forward(). Reenvío a otro servlet. Despachar mediante include(). Cómo configurar un resultado RequestDispatcher. ServletRedirectResult: La redirección estándar. Cómo configurar un resultado de redirección. Cómo embeber expresiones OGNL para crear localizaciones dinámicas. ServletActionRedirectResult, o redirectAction. Alternativas al uso de JSP. VelocityResult: Velocity. Cómo utilizar resultados Velocity. FreeMarkerResult: Resultados freemarker. Cómo utilizar resultados FreeMarker. Resultados globales. Resumen. . . Parte IV. Cómo mejorar sus aplicaciones. . 9. Integración con Spring e Hibernate/JPA. ¿Por qué utilizar Spring con Struts 2?. ¿En qué me puede ayudar la inyección de dependencias?. Objetos firmemente acoplados. Gestión de objetos e inyección de dependencias con Spring. El uso de interfaces para ocultar las implementaciones. Cómo añadir Spring a Struts 2. Cómo permitir a Spring administrar la creación de acciones, interceptores y resultados. Cómo sacar partido al enlazado automático para la inyección de dependencias en acciones, interceptores y resultados. Enlazado automático mediante name. Enlazado automático mediante type, constructor y auto. ¿Por qué utilizar la API de Persistencia de Java con Struts 2?. Cómo preparar nuestro proyecto para el uso de JPA con Hibernate. Cómo recopilar los archivos JAR adecuados. Cómo elegir una base de datos. Cómo utilizar Spring para gestionar nuestras dependencias JPA. Gestión del lazy loading mediante el filtro openentitymanagerinview de Spring. Codificación de la API de Persistencia de Java gestionada por Spring. La unidad de persistencia. Uso de anotaciones para vincular nuestras clases Java a tablas de la base de datos. Cómo utilizar el EntityManager de JPA para implementar nuestro objeto de servicios. Resumen. . 10. Explorando el marco de trabajo de validación. Introducción al marco de trabajo de validación. Arquitectura del marco de trabajo de validación. Datos de dominio. Metadatos de validación. Validadores. El marco de trabajo de validación en el flujo de trabajo de Struts 2. Validación básica. Introducción al interceptor workflow del marco de trabajo de validación. Cómo vincular acciones para la validación. Declaración de los metadatos de validación mediante ActionClass-validations.xml. Validadores de campo. Validadores nonfield. Opciones del elemento message. Validadores implícitos. Construcción de un validador personalizado. Un validador personalizado que compruebe el nivel de seguridad de la contraseña. Uso del validador personalizado. Temas avanzados del marco del trabajo de validación. La validación en el nivel de objetos de dominio. Uso del marco de trabajo de validación con acciones modeldriven. Uso del contexto de validación para el refinamiento de las validaciones. Uso del contexto de validación con el validador Visitor y objetos de dominio. Herencia de validación. Cómo interrumpir las validaciones. Uso de anotaciones para la declaración de validaciones. Resumen. . 11. La internacionalización. El marco de trabajo de Struts 2 y la internacionalización de Java. Recuperación del texto localizado mediante ResourceBundle y Locale. Almacenamiento de recursos en ResourceBundle. Funcionamiento de los lotes de recursos ResourceBundle de Java. Cómo Struts 2 facilita la internacionalización. Una demostración de la internacionalización en Struts 2. Una rápida demostración de la internacionalización en Struts 2. Un rápido vistazo tras las bambalinas. Los detalles de la internacionalización en Struts 2. El algoritmo de localización Text Provider ResourceBundle de Struts 2. La especificidad en la localización y la recuperación de mensajes. Definición de lotes por defecto. Recuperación de textos de mensaje desde sus lotes. Cómo recuperar el idioma adecuado. Uso del atributo key de las etiquetas de componentes UI. Cómo localizar sus mensajes de error de validación. Cómo localizar mensajes de error de conversión de tipos. Cómo utilizar la etiqueta i18n para especificar un lote. Parametrización de textos localizados. Parametrizar textos de mensaje mediante expresiones OGNL. Parametrización de los textos de mensaje con capacidades nativas de Java. Formato de fechas y números. Cómo anular la determinación de la localización por defecto del marco de trabajo. Cómo permitir al usuario configurar la localización de forma interactiva. El interceptor i18n. Configuración programática de la localización. Resumen. . . Parte V. Temas avanzados y prácticas recomendadas. . 12. Cómo extender Struts 2 mediante el uso de plug-ins. Un resumen de los plug-ins. Cómo encontrar plug-ins. Plug-ins comunes. SiteMesh. Tiles. JFreeChart. Sistema de componentes internos. Beans. Constantes. Inyección. Puntos de extensión interna de Struts. Cómo escribir un plug-in "breadcrumb". Resumen. . 13. Prácticas recomendadas. Configuración de su entorno. Cómo configurar el IDE. Recarga de recursos. Cómo probar las acciones. La ventaja del IoC para la realización de pruebas. JUnit y las pruebas. Pruebas de los archivos validation.xml. Cómo maximizar la reutilización. Componentización mediante la etiqueta de componentes. Cómo aprovechar las etiquetas de plantilla. Cómo conectar los componentes UI a objetos. Uso avanzado de etiquetas UI. Cómo anular las plantillas existentes. Cómo escribir plantillas personalizadas. Cómo escribir temas personalizados. Crear un tema nuevo desde cero (¡Difícil!). Envolver un tema existente. Extender un tema existente. Resumen. . 14. La migración desde Struts Classic. Cómo traducir sus conocimientos de Struts Classic. Acciones. ¿Qué ha ocurrido con ActionForm?. Cómo cambiar las bibliotecas de etiquetas. Cómo dividir los mensajes de recursos. La conversión paso a paso. La conversión progresiva. Vinculaciones de acción. Donde la acción se encuentra con el formulario. Conversión de páginas. "No hablo inglés". La policía de datos. ¿Podemos llevarnos bien?. Resumen. . 15. Temas avanzados. Uso avanzado de las acciones. Invocación de métodos alternativos. Invocación dinámica de métodos. Selección de métodos mediante comodines. Flujos de trabajo dinámicos. Cómo utilizar tokens para impedir el duplicado de envíos. La etiqueta de formulario . Excepciones a la regla de interceptores de tokens. Cómo mostrar las páginas de espera de forma automática. Qué ocurre cuando los usuarios se impacientan. Una única acción para operaciones CRUD. CRUD. Interceptores e interfaces. Cómo conectar las partes entre sí. Tiles y Struts 2. Apariencia y función de la interfaz de usuario. Configuración de la interrelación. Uso de la arquitectura declarativa. Cómo preparar el contenido de una página Web con un controlador de plantillas (tiles). Resumen. . Índice alfabético.