Sunteți pe pagina 1din 36

9

Control de una Aplicación con Struts

Copyright © 2004, Oracle. Todos los derechos reservados.


Objetivos

Al finalizar esta lección, debería estar capacitado para:


• Definir el rol del controlador en la arquitectura MVC
• Definir la navegación de página en una aplicación Struts
• Manejar la navegación de excepciones y de corrección
• Definir las distintas formas de editar la configuración
de Struts

Copyright © 2004, Oracle. Todos los derechos reservados.


El Controlador

Capa de Cliente Capa Media Capa EIS

Web Container

Capa de servicios de
negocio de ADF
Controlador Modelo

Módulo de Objeto Objeto


aplicación de vista de entidad
Base de
ADF ADF ADF datos

Copyright © 2004, Oracle. Todos los derechos reservados.


ADF Implementa MVC mediante el
Controlador Struts

Swing/
Vista JSP JSF ADF UIX
ADF JClient

Controlador Struts

Modelo Modelo ADF

ADF Beans
Servicios de Servicios JavaBeans/
Business de Sesión
Negocio Web Otros
Components EJB

Copyright © 2004, Oracle. Todos los derechos reservados.


Objetivo de un Controlador

En una página Web, todo lo significativo se produce a


través de una ejecución o un enlace.
• Un controlador intercepta una solicitud y la
distribuye correctamente.
• La página de origen no tiene que conocer cómo
manejar un evento o dónde ir a continuación.
• El código de manejo no tiene que conocer qué
página debe mostrar como respuesta.
• El controlador separa el modelo y la vista.

Copyright © 2004, Oracle. Todos los derechos reservados.


Ejemplo: Flujo de Páginas sin Controlador

<a href="page2.jsp">

<a href="page1.jsp">
page1.jsp page2.jsp

Copyright © 2004, Oracle. Todos los derechos reservados.


Ejemplo: Flujo de Páginas sin Controlador

<a href="page2.jsp">

<a href="page1.jsp">
page1.jsp page2.jsp

page1a.jsp

Copyright © 2004, Oracle. Todos los derechos reservados.


Ejemplo: Flujo de Páginas sin Controlador

<a href="page2.jsp">

<a href="page1.jsp">
page1.jsp page2.jsp

page1a.jsp

Copyright © 2004, Oracle. Todos los derechos reservados.


Ejemplo: Flujo de Páginas sin Controlador

page1.jsp page2.jsp

<a href="page1a.jsp"> <a href="page1a.jsp">


page1a.jsp

Copyright © 2004, Oracle. Todos los derechos reservados.


Ejemplo: Flujo de Páginas con Controlador

Controlador
Siguiente Anterior

page1.jsp page2.jsp

Copyright © 2004, Oracle. Todos los derechos reservados.


Ejemplo: Flujo de Páginas con Controlador

Controlador
Siguiente Anterior

Siguiente Anterior

page1.jsp page2.jsp

page1a.jsp

Copyright © 2004, Oracle. Todos los derechos reservados.


¿Qué es Struts?

• Un proyecto de Apache Software Foundation


http://jakarta.apache.org/struts
• Un marco de origen abierto para aplicaciones MVC
basadas en Web
– Un servlet de controlador basado en XML
• Estándar de facto para el desarrollo de modelo 2 de JSP
• Parcialmente declarativo y parcialmente codificado
• Se suele utilizar con otros niveles de vista
– Mosaicos: mecanismo de diseño de página que utiliza
plantillas JSP
– Velocidad: lenguaje de archivo de comandos de página

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts
Vista

Etiquetas JSP Pantalla de acción

Grupos de recursos

Controlador

Configuración Servlet de Acción


de Struts controlador

Modelo
Modelo

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts

• Servlet de Controlador de Struts: gestiona las solicitudes


y resultados de canalización de datos
entre sistemas
• Archivo de configuración de Struts: mapa para el servlet
• Acciones: procesa una solicitud y reenvía acciones
• Pantallas de acción: transfiere información entre el
cliente y el modelo
• Bibliotecas de etiquetas: juego de etiquetas de
bibliotecas Struts que se utilizan con JSP
• Grupos de recursos: archivo basado en texto que se
utiliza con la internacionalización de mensajes

Copyright © 2004, Oracle. Todos los derechos reservados.


Flujo de Componentes Struts

Solicitud HTTP

Struts
Servlet de controlador Acción
Pantalla

Acción
validate()

Modelo
Reenviar Devolver
respuesta
execute()
Página

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts:
El Servlet de Controlador

• Controla todo el proceso de la aplicación


• No aparece en el panel Applications Navigator de
JDeveloper
• Se le hace referencia en el archivo web.xml
• Se ha diseñado para ampliarse
• Basado en XML

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts:
El Archivo de Configuración

• Se denomina struts-config.xml
• Lo utiliza el servlet de controlador
• Proporciona los metadatos que definen la aplicación:
– Asociaciones de acciones (abstracciones)
– Flujo de páginas
– Flujo de datos
– Manejo de excepciones
– Recursos

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts: Acciones

• Las acciones procesan solicitudes a través


del método execute() y devuelven objetos
ActionForward que identifican a dónde se debe
reenviar el control.
• Las acciones son adaptadores entre las solicitudes
HTTP y la lógica de negocio correspondiente.
• Las posibles tareas que se pueden especificar para
una acción son:
– Reenviar o representar una página
– Codificar la lógica de flujo de páginas
– Tomar datos de la página y actualizar el modelo

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts:
ActionForms (Beans de Pantalla)

• Representa datos de pantalla HTML que el


usuario introduce
• Transporta datos entre la vista y la acción:
– Los campos de la página se rellenan desde
ActionForm.
– Al enviar, la ActionForm se rellena desde
la página.
– La ActionForm rellenada se transfiere a la acción
de manejo para su procesamiento.

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts:
Bibliotecas de Etiquetas

• Las bibliotecas de etiquetas integran los


componentes de JSP y de controlador
• <html:form/>: dirige el controlador a la acción
correcta que se ejecuta
• <html:errors/>: muestra los errores que devuelve
el modelo, incluida la validación
• <bean:message/>: genera la salida de una cadena a
partir del archivo de recursos (una etiqueta de campo,
por ejemplo)
• Alto nivel de superposición con las bibliotecas de
etiquetas “más recientes” como, por ejemplo, JSTL

Copyright © 2004, Oracle. Todos los derechos reservados.


Archivo de Recursos de la Aplicación

• Centraliza todos los mensajes para la aplicación,


haciendo que el mantenimiento de mensajes y la
internacionalización sean fáciles de realizar
• El nombre por defecto es
ApplicationResources.properties
• Asocia un nombre clave con un valor
link.logonpage = Click here to Login

• Se utiliza con las etiquetas Struts y las rutinas de error


<html:link page="/logonPage.do">
<bean:message key="link.logonPage"/>
</html:link>

Copyright © 2004, Oracle. Todos los derechos reservados.


Internacionalización de la Aplicación

Para internacionalizar una aplicación, realice


los siguientes pasos:
• Cree otro archivo de grupos.
• Agregue el código de país al nombre de archivo, como
ApplicationResources_fr.properties.
• Traduzca el texto del mensaje:
logon.title=Entrez votre nom d’utilisateur
• A continuación, el servlet comprueba la variable de
código local del explorador durante el inicio, y si lo
encuentra, se carga el archivo correspondiente. De
lo contrario, se carga el archivo por defecto.

Copyright © 2004, Oracle. Todos los derechos reservados.


Struts en
Oracle JDeveloper 10g

• JDeveloper soporta Struts 1.1.


• Se puede visualizar el flujo de páginas
desde el modelador y:
– Desplegar el editor visual de JSP/UIX para las páginas
– Desplegar el editor de códigos para las acciones
• Se puede editar de la forma que desee:
– Visualmente
– A través del panel de estructuras y el inspector de
propiedades
– En XML

Copyright © 2004, Oracle. Todos los derechos reservados.


Archivo de Configuración de Struts

• Está escrito en XML.


• Es el mapa de la aplicación.
• La actualización directa puede resultar pesada.
• JDeveloper proporciona una herramienta gráfica
de edición, exenta de sintaxis XML.
<struts-config>
<action-mappings>
<action path="/action1">
<forward name="success" path="/page1.do"/>
</action>
</action-mappings>
<message-resources
parameter="view.ApplicationResources"/>
</struts-config>

Copyright © 2004, Oracle. Todos los derechos reservados.


Definición del Contenido del
Archivo struts-config.xml

El panel de estructuras y el inspector de


propiedades

<struts-config>
<action-mappings>
<action path="/action1" type="view.Action1Action">
<forward name="success" path="/page1.do"/>
</action>
<action path="/page1" forward="/page1.jsp"/>
</action-mappings>
<message-resources
parameter="view.ApplicationResources"/>
</struts-config>

Copyright © 2004, Oracle. Todos los derechos reservados.


Definición del Contenido del
Archivo struts-config.xml

Uso del Editor de Configuración de Struts

<struts-config>
<action-mappings>
<action path="/action1" type="view.Action1Action">
<forward name="success" path="/page1.do"/>
</action>
<action path="/page1" forward="/page1.jsp"/>
</action-mappings>
<message-resources
parameter="view.ApplicationResources"/>
</struts-config>

Copyright © 2004, Oracle. Todos los derechos reservados.


Definición del Contenido del
Archivo struts-config.xml

El Diagrama de Flujo de Páginas de Struts


y Component Palette
<struts-config>
<action-mappings>
<action path="/logon" type="view.LogonAction">
<forward name="success" path="/customers.do"/>
</action>
<action path="/customers" forward="/customers.jsp"/>
<action path="/orders" forward="/orders.jsp"/>
</action-mappings>
<message-resources
parameter="view.ApplicationResources"/>
</struts-config>

Copyright © 2004, Oracle. Todos los derechos reservados.


Creación de un Diagrama de Flujo de Páginas

• Mediante Component Palette,


arrastre los componentes al diagrama.
• Los componentes no existen hasta que los cree
físicamente (como una clase Java o una JSP).

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts: Acciones

Para crear una acción:


• Utilice el icono Action para dibujar acciones y
ActionForms en el diagrama de flujo de páginas
• Especifique el nombre de la ruta de acceso para la
acción
• El nombre de la ruta de acceso es un nombre lógico
• Modifique el método execute()
– Devuelve un reenvío

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts:
Páginas y Reenvíos de Página
• Las páginas simbolizan la vista del usuario.
• Creación de un reenvío de página
(también denominado ActionForward):
– Crea una entrada de acción en el archivo
struts-config.xml
– Crea un nombre lógico asociado al nombre
de página
• Creación de una página
– Hace referencia directa al nombre de página
– Es necesario cambiarlo en cada incidencia
de la página cuando se renombra
• Las páginas necesitan existir físicamente para poder
utilizarlas como destino de un reenvío o un enlace

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes Struts:
Reenvíos y Enlaces

• Un enlace representa un flujo entre componentes


• Puede crear un enlace (línea de puntos sin nombre):
– Entre páginas
– Entre una página y una acción
• Puede crear un reenvío (línea con nombre):
– Entre acciones
– Entre una acción y una página
– El nombre por defecto del primer reenvío es Success.
• Pueden existir varios reenvíos o enlaces en el origen
de un componente.

Copyright © 2004, Oracle. Todos los derechos reservados.


Componentes ADF: DataAction y DataPage

ADF proporciona dos componentes de acción


subclasificados y especializados:
• DataPage
– Se crea para las páginas de datos enlazados
– Se utiliza mucho con las aplicaciones de
componentes de negocio ADF por defecto
– Combinación de DataAction y un reenvío
de página de Struts estándar
• DataAction
– Creada como una acción autónoma para ejecutar
métodos personalizados del servicio de negocio
– Maneja acciones estándar procedentes de páginas
de datos enlazados

Copyright © 2004, Oracle. Todos los derechos reservados.


Resumen

En esta lección, debería haber obtenido información sobre


las aplicaciones Struts:
• El servlet de controlador Struts intercepta cada
solicitud.
• El archivo struts-config.xml define los
componentes:
– Acciones (procesa una solicitud)
– Reenvíos de acciones (transfiere datos de pantalla HTML)
– Reenvíos de página y/o páginas (simboliza la vista del
usuario en relación con el resultado de una acción)
– Grupos de recursos (creación de componentes de
etiquetas y texto)
– Navegación (reenvíos y enlaces de página)

Copyright © 2004, Oracle. Todos los derechos reservados.


Práctica 9-1: Visión General

Esta práctica cubre los siguientes temas:


• Creación de un diagrama de flujo de páginas
• Creación de un reenvío de páginas para cada pantalla
• Asociación de cada pantalla JSP con una determinada
acción de reenvío de página.
• Adición de DataAction entre las pantallas de conexión
y del cliente.
• Enlace de DataAction con la pantalla de conexión

Copyright © 2004, Oracle. Todos los derechos reservados.


Práctica 9-1

Copyright © 2004, Oracle. Todos los derechos reservados.


Práctica 9-1

Copyright © 2004, Oracle. Todos los derechos reservados.

S-ar putea să vă placă și