FUNCIONAMIENTO: FUNCIONALIDAD



Documentos relacionados
Lección 1 Introducción a Struts. uacosta@globalmentoring.com.mx

Curso de JavaServer Faces

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Capitulo III. Diseño del Sistema.

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Análisis y diseño del sistema CAPÍTULO 3

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

Facultad de Ingeniería Escuela de Ciencias y Sistemas Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

A continuación en la figura D.1 se verá el código de una implementación del archivo struts-config.xml:

Configuración servidor Tomcat

4. CODIFICACIÓN. Previo a la codificación además de instalar las respectivas herramientas es. importante tenerlas bien configuradas.

Capítulo II. Arquitectura del Software

Conceptos Generales en Joomla

Capitulo 5. Implementación del sistema MDM

Elementos requeridos para crearlos (ejemplo: el compilador)

EXTENSIÓN DE UML PARA APLICACIONES WEB

JavaScript como Orientación a Objetos

Gestión de usuarios en la web educativa del centro con JOOMLA!

Curso de Java POO: Programación orientada a objetos

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Kaldeera Advanced Forms 2009 Guía del usuario

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / j a v a. p h p ]

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

Introducción a la Firma Electrónica en MIDAS

Curso de Spring Framework

Etapas de Sinube CRM

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Creación y administración de grupos locales

Manual hosting acens

Roles y Características

Manual Consultas Web - PC Sistel Ver 486R4+ - USUARIO JEFATURA

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Capítulo 2. Marco Teórico

Implementación CAPÍTULO 4

NORMA 34.14(SEPA) 05/11/2013

Programación Orientada a Objetos en Java

19. Packages o paquetes

Tema 4: Tecnologías Web Java

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

FUJITSU Java Development Framework

Workflows? Sí, cuántos quiere?

Visión General de GXportal. Última actualización: 2009

LiLa Portal Guía para profesores

Agentes con Interfaz Gráfica.

Requisitos. Universidad ORT Arquitectura de Software

Práctica de introducción a

Portal de Soporte. Guía de usuario

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Internet Information Server

Gestión de la Configuración

Elección de tecnología para la capa de presentación de SOA. Huibert Aalbers Senior Certified Software IT Architect

Curso PHP Módulo 1 R-Luis

Universidad Tecnológica del Valle del Mezquital. Desarrollo de Aplicaciones Web. Manual JSP

Introducción a Protégé

Introducción a la extensión de scripting en gvsig 2.0

Activación de un Escritorio Remoto

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Seven ERP Guía De Referencia - Imágenes

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

Creación y administración de grupos de dominio

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Proyecto Help Desk en plataforma SOA Glosario Versión 1.3. Historia de revisiones

5.4. Manual de usuario

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Programación Orientada a Objetos con Java

Introducción a las Redes de Computadoras. Obligatorio

Dirección Alumnos. Av. Benjamín Aráoz C.P Tucumán - Argentina Tels.: 0054 (0381) Fax: Internet:

OFICINA VIRTUAL SIS MANUAL DE TUTOR

MANUAL DE AYUDA MODULO TALLAS Y COLORES

Ejercicios de validación e internacionalización

Taller de Sistemas de Información 2

Unidad 3. NORMALIZACIÓN.

Estructuras de Sistemas Operativos

Cómo ingresar a la Intranet?

Temario máster Java. Módulo 1 Fundamentals of the Java Programming Language. Duración: 40 horas

Proyecto Help Desk en plataforma SOA Alcance del Sistema Versión 1.2. Historia de revisiones

Oasis es una fábrica para el bien común de los datos mediante la utilización de aplicaciones propuestas.

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Manual de Uso XML-Whois de Neubox. Manual del Sistema de XML Whois de Neubox Versión

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Google Groups. Administración de Grupos de Google Apps

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

MANUAL ECOMMERCE 2.0

Curso de PHP con MySQL Gratis

Transcripción:

STRUTS Qué Es? Es un framework que implementa el patrón de arquitectura MVC en Java. El patrón de arquitectura MVC (Model-View-Controller) es un patrón que define la organización independiente del Model (Objetos de Negocio), la View (interfaz con el usuario u otro sistema) y el Controller (controlador del workflow de la aplicación).

FUNCIONAMIENTO: El navegador genera una solicitud que es atendida por el Controller (un Servlet especializado). El mismo se encarga de analizar la solicitud, seguir la configuración que se le ha programado en su XML y llamar al Action correspondiente pasándole los parámetros enviados. El Action instanciará o utilizará los objetos de negocio para concretar la tarea. Según el resultado que retorne el Action, el Controller derivará la generación de interfaz a una o más JSPs, las cuales podrán consultar los objetos del Model a fines de realizar su tarea. FUNCIONALIDAD Evidentemente, como todo framework intenta, simplifica notablemente la implementación de una arquitectura según el patrón MVC. El mismo separa muy bien lo que es la gestión del workflow de la aplicación, del modelo de objetos de negocio y de la generación de interfaz. El controlador ya se encuentra implementado por Struts, aunque si fuera necesario se puede heredar y ampliar o modificar, y el workflow de la aplicación se puede programar desde un archivo XML Las acciones que se ejecutarán sobre el modelo de objetos de negocio se implementan basándose en clases predefinidas por el framework y siguiendo el patrón Facade. Y la generación de interfaz se soporta mediante un conjunto de Tags predefinidos por Struts cuyo objetivo es evitar el uso de Scripts envebidos (los trozos de código Java entre "<%" y "%>"), lo cual genera ventajas de mantenibilidad y de perfomance. Logísticamente, separa claramente el desarrollo de interfaz del workflow y lógica de negocio permitiendo desarrollar ambas en paralelo o con personal especializado. También es evidente que potencia la reutilización, soporte de múltiples interfaces de usuario (Html, shtml, Wml, Desktop applications, etc.) y de múltiples idiomas.

MODEL(MODELO) El Model comprende todos los Objetos de Negocio donde se implementa la lógica de negocio (el "how it's done") y donde se debe soportar todos los requisitos funcionales del Sistema sin mezclarlo con partes correspondientes al workflow (el "what to do") que corresponden al Controller. Action Bean Generalmente, los Action Beans siempre realizan las siguientes acciones: Obtener los valores necesarios del Action Form, JavaBean, request, session o de cualquier parte. Llamar a los objetos de negocio del Model. Analizar los resultados, y según los mismos retornar el ActionForward correspondiente. System State Beans Los System State Beans son el conjunto de objetos de negocio que representan el estado actual del sistema, por ejemplo: el carrito de la compra que el usuario va modificando a lo largo de su interacción con la aplicación. Estos objetos de negocio serán típicamente JavaBeans o EJBs de los que se guardará referencia en la sesión del usuario, que serán modificados desde los Action y que serán consultados desde las JSPs. Esta clase de objetos no debiera tener ningún conocimiento de la View. BusinessLogic Beans Los objetos de negocio son los que implementan la lógica de negocio, el cómo hacer las cosas y su propia persistencia. Estos objetos de negocio no debiera tener ningún conocimiento de la View o el Controller de forma que debieran ser perfectamente reutilizables para implementar soporte a distintas interfaces y hasta para incluirse en nuevas aplicaciones. Struts y Action Con Struts se puede definir un datasource para una aplicación desde el struts-config.xml Este datasource nos permite obtener una connection desde un Action y desde allí utilizarlo o pasarlo al Model.

VIEW (VISTA) La View comprende las JSP (principalmente) y los servlets involucrados en la generación de la interfaz de usuario o con otros Sistemas. Struts provee soporte para construir aplicaciones multi-idioma, interacción con formularios y otras utilidades mediante la utilización de Tags especiales (TagLibraries). Internacionalización Se maneja un archivo con la información del idioma con la terminacion.properties. Por ejemplo (MiAplicacion.properties) en el directorio donde se encuentren las clases de la aplicación donde se contengan las claves y valores con el formato de los textos que pertenezcan al idioma principal Por defecto Struts asigna a cada usuario el idioma principal de la aplicación. Si se utiliza el tag <html:html locale="true"> (reemplaza a "<html>" y debe cerrarse con "</html:html>") entonces se utilizará el primero de los idiomas soportados por la aplicación que se encuentre en el header "Accept-Language" enviado por su navegador. Pero si se desea proponerle al usuario una lista de idiomas entonces éste podrá cambiarse mediante : session.setattribute( Action.LOCALE_KEY, new java.util.locale(country, language)) Donde country y language serán el string del país e idioma a establecer. Además de texto podran incluirse variables (al igual que se hace en los println) y hasta formato de datos. Forms Una de las tareas que durante el desarrollo de una aplicación insume mucho trabajo es la interacción con formularios, ya sea para editar u obtener nueva información. Las comprobaciones, la gestión de errores, el volver a presentarle el mismo form al usuario con los valores que puso y los mensajes de error y un largo etcétera están soportadas por Struts a fines de hacernos la vida un poco más fácil. La idea es la siguiente: todo el trabajo de comprobaciones y generación de mensajes de error se implementa en los ActionForm y todo el trabajo de generación de interfaz en los JSP.

Tags: Básicamente, un Tag de JSP consiste en un Tag con formato <prefijotaglib:nombretag atributo=valor... > que cuando la JSP se compila es sustituido por una llamada a la clase TagHandler que se encarga de resolver su funcionalidad. El TagHandler extiende BodyTagSupport o TagSupport (según si es un tag que tiene body), que implementa su funcionalidad en los métodos dostarttag(), doendtag(),doinitbody(), doafterbody() (los dos últimos sólo en las que extienden BodyTagSupport), además de los getters y setters correspondientes a sus atributos. Esta clase se define en un Tag Library Definition (archivo xml con extensión TLD donde se define el nombre del tag, la clase TagHandler que lo atiende, la definición de sus atributos, si tiene body, etc.) que a su vez se debe declarar en el web.xml (dentro de <web-app> se pone <taglib> <taglib-uri> nombretaglib </taglib-uri> <taglib-location>/directorios/nombrearchivo.tld </taglib-location> </taglib>) y en la JSP donde se utilizará (<%@ taglib uri="nobretaglib" prefix="prefijotaglib" %>). Finalmente, el Tag que se usa en la JSP consiste en <prefijotaglib:nombretag atributo=valor... >. CONTROLLER El Controller comprende la funcionalidad involucrada desde que un usuario genera un estímulo (click en un link, envío de un formulario, etc.) hasta que se genera la interfaz de respuesta. Entre medio, llamará a los objetos de negocio del Model para que resuelvan funcionalidad propia de la lógica de negocio y según el resultado de la misma ejecutará la JSP que deba generar la interfaz resultante. Struts incluye un servlet que a partir de la configuración de struts-config.xml recibe las solicitudes del usuario, llama al ActionBean que corresponda y, según lo que éste retorne, ejecuta una JSP. Por consiguiente, las tareas que se deben realizar son: Escribir una clase Action que extienda de org.apache.action.action. Configurar el struts-config.xml para que incluya el nuevo action mapping y sus posibles forwards de salida. Un global-forward que, como su nombre lo indica, viene a ser un forward que se aplica a todos los action-mappings (excepto que se re-defina para alguno en particular). Incluir los links (preferentemente utilizando <html:link>) o forms (necesariamente utilizando <html:form>) necesarios en las JSPs correspondientes.

ActionForm Beans Los ActionForm Beans son clases que extienden ActionForm y que implementan métodos get y set para cada una de los inputs de un form de una página, y los métodos validate y reset. Cuando un usuario completa un formulario y lo envía, el Controller busca en el scope especificado el ActionForm Bean correspondiente (todo esto configurado en el strutsconfig.xml) y si no lo encuentra lo crea. Luego realiza un set por cada input del form y finalmente llama al método validate. Si éste retornara uno o más errores, el Controller llamaría a la JSP del formulario para que ésta lo volviera a generar (con los valores establecidos por el usuario) e incluyera el o los mensajes de error correspondientes. Si todo estuviese bien, llamaría al método perform del Action (también configurado en el struts-config.xml) pasándole el ActionForm Bean como parámetro para que sea utilizado para obtener los valores de los datos. Si bien el ActionForm tienen características que corresponden al Model, los ActionForm pertenecen a la View. Justamente uno de estos puntos comunes es la validación de datos y a fines de evitar la duplicación de funcionalidad, si un desde un ActionForm debe realizar controles de validación que se hubiesen implementado en un objeto de negocio entonces se debería utilizar una instancia de éste para efectuarlos.

Al momento de escribir un ActionForm debemos tener en mente los siguientes principios: No debe tener nada que corresponda a la lógica de negocio No debería tener más que implementaciones de getters y setters (obligatoriamente un par por cada input del form; si el input se llama nombre entonces tendremos getnombre() y setnombre(string nombre)), y de los métodos reset y validate Debe ser un Firewall entre el usuario y el Action que detenga todo tipo de errores de incompletitud o inconsistencia Si el formulario se desarrolla en varias páginas (por ejemplo, en las interfaces de tipo "Wizard"/"Asistentes") el ActionForm y el Action deberán ser los mismos, lo que permitirá, entre otras cosas, que los input se puedan reorganizar en distintas páginas sin cambiar los ActionForm ni los Action Links: http://www.programacion.com/java/tutorial/struts www.eclipsekickstart.com/chapters/eclipsekickstart-ch11.pdf http://www.laliluna.de/first-java-server-faces-tutorial-es.html