struts-en-java-1205535054489007-2

62
 Struts : MVC en Java 8º Seminario Internacional de Informática y Sistemas Ing. Ana María Pacheco Asp ilcueta

Transcript of struts-en-java-1205535054489007-2

Page 1: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 1/62

Struts : MVC en Java

8º Seminario Internacional deInformática y Sistemas

Ing. Ana María Pacheco Aspilcueta

Page 2: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 2/62

Agenda

Introducción

Conceptos fundamentales

Apache Struts Framework Características

Controlador

Vista

Modelo

Utilización

Apache Struts Project

Page 3: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 3/62

Introducción

Las aplicaciones Web son diferentes a lossitios Web convencionales porque éstas

son capaces de crear una respuestadinámica.

Muchos sitios Web ofrecen sólo páginasestáticas, en cambio una aplicación Web es

capaz de interactuar con bases de datos ylógica de negocios con la finalidad depersonalizar la respuesta a enviar.

Page 4: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 4/62

Introducción (…) 

Cuando aparecieron los Servlets Java, losdesarrolladores se dieron cuenta de que

eran más rápidos y más potentes que elCGI estándar, eran portables y extensibles.

Lo problemático del asunto era el hecho detener que escribir infinitas sentencias

println() para enviar código HTML alnavegador. Como respuesta a estosurgieron las JavaServer Pages.

Page 5: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 5/62

Introducción (…) 

Los JSP permiten escribir código Javadentro de ellos, pudiendo así mezclar

fácilmente HTML con Servlets y tener todaslas ventajas de éstos.

Sin embargo este modelo no resolvíatodavía los problemas propios de las

aplicaciones Web, como control de flujo porejemplo.

Page 6: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 6/62

Introducción (…) 

Las aplicaciones Web en general tienen tresaspectos a considerar en su desarrollo: El código de acceso, inserción, consulta,

actualización y/o eliminación de los datos. El código del diseño de las páginas a mostrar.

El código que controla el flujo de las páginas dela aplicación.

Con la práctica nos damos cuenta que siuna aplicación Web grande tiene estosaspectos muy mezclados se vuelve difícil demantener.

Page 7: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 7/62

Introducción (…) 

Una forma de separar estos aspectos esusando la arquitectura MVC: Modelo-Vista-

Controlador, donde: El modelo  representa a la lógica de negocios

(manipulación de datos).

La vista  representa la presentación de los datos

(diseño de páginas). El controlador  representa el código de

navegación de la aplicación (control de flujo).

Page 8: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 8/62

Patrones de Diseño

Los patrones de diseño son solucionesefectivas de problemas comunes en el

diseño de software. La efectividad de un patrón ya ha sido

comprobada.

Un patrón es reusable.

Los patrones facilitan el aprendizaje de losprogramadores inexpertos.

Page 9: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 9/62

Patrones de Diseño (…) 

Los patrones de diseño se pueden clasificar,según su propósito, en:

Patrones creacionales: abstraen el proceso deinstanciación y ocultan los detalles de cómo losobjetos son creados o inicializados.

Patrones estructurales: describen como las

clases y objetos pueden ser combinados paraformar grandes estructuras y proporcionarnuevas funcionalidades.

Page 10: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 10/62

Patrones de Diseño (…) 

Patrones de comportamiento: tratan decómo definir la comunicación e

interacción entre los objetos de unsistema con la finalidad de reducir elacoplamiento entre éstos.

Page 11: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 11/62

Patrón MVC

El patrón de diseño Modelo-Vista-Controlador fue aportado originariamente

por el lenguaje de programación SmallTalk. Consiste en dividir una aplicación en tres

componentes: Modelo, Vista y Controlador.

Se basa en la separación de

responsabilidades ya que cada una de laspartes se encarga de un aspecto específicoy no interfiere con el de las otras.

Page 12: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 12/62

Patrón MVC: Modelo

Representa las capas de lógica de negociosy persistencia de datos de la aplicación.

Está formada por todos los objetos de

negocio que soportan los procesos propiosdel dominio de la aplicación.

Se encarga del acceso a los datos pararealizar consultas, eliminaciones,

inserciones, actualizaciones y almacenarlosen un medio persistente, como por ejemplouna base de datos, un archivo de texto,XML, etc.

Page 13: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 13/62

Patrón MVC: Vista

Representa la capa de presentación de losdatos.

Se encarga de mostrar la información al

usuario, por lo tanto tiene que ver con eldiseño y formateo de los datos para supresentación.

Interfaz de usuario para la interacción con la

aplicación. En la vista solo se deben de realizar

operaciones simples, como condiciones,ciclos, etc.

Page 14: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 14/62

Patrón MVC: Controlador

Se encarga de controlar el flujo de laaplicación.

Tiene la función de recibir y responder a loseventos (acciones del usuario), convirtiendoéstos en solicitudes de servicio.

Además, tiene que redirigir o asignar laparte de lógica de negocios a cada petición.

Cuenta con un mecanismo para guardar las

correspondencias entre peticiones yrespuestas que se les asignan.

Cada acción del usuario causa que se iniciede nuevo un nuevo ciclo. 

Page 15: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 15/62

Patrón MVC: Funcionamiento

El procesamiento de losdatos se lleva a caboentre sus trescomponentes.

El controlador recibe unapetición y decide quien lalleva a cabo en el modelo.

Una vez terminadas lasoperaciones en el

modelo, se transfiere elflujo al controlador, quedevuelve los resultados auna vista asignada.

Page 16: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 16/62

Patrón MVC: Funcionamiento (…) 

El controlador tiene almacenado larelación entre las posibles peticiones y lalógica de negocio que les corresponden.

Page 17: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 17/62

Patrón MVC: Ventajas

Separación total entre las capas depresentación, lógica de negocio y acceso adatos.

Esta separación es fundamental para eldesarrollo de aplicaciones consistentes,reutilizables y más fácilmente mantenibles,resultando en un ahorro de tiempo.

En Java se puede implementar el patrón

MVC con la clase Observer pero de unamanera sencilla, sin embargo con Struts seaplica en toda una aplicación Webconvencional.

Page 18: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 18/62

Frameworks

Un framework es la extensión de unlenguaje, a través de una o más jerarquías

de clases que implementan unafuncionalidad y que pueden ser extendidas

de manera opcional. 

Page 19: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 19/62

Apache Struts Framework

Originalmente fue creado por Craig R.McClanahan y donado al proyecto Jakartade Apache Software Foundation en el año

2000. En Junio de 2001 se libera la primera

versión, y desde entonces muchosdesarrolladores han participado en lamejora continua de este framework.

Actualmente se ha lanzado una nuevaversión de este framework, la cual sedenomina Struts 2.

Page 20: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 20/62

 Apache Struts Framework (…) 

Es un framework de código abierto paradesarrollar aplicaciones Web J2EE usandoel patrón de diseño Modelo-Vista-Controlador.

Usa y extiende la Java Servlet API paramotivar a los desarrolladores a adoptar laarquitectura MVC.

Simplifica notablemente la implementaciónde una aplicación siguiendo la arquitecturadel patrón MVC.

Page 21: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 21/62

 Apache Struts Framework (…) 

El controlador ya se encuentraimplementado en Struts, sin embargo y si esnecesario es posible extenderlo omodificarlo.

El flujo de la aplicación se controla desde unarchivo XML.

Proporciona la integración con el modelo, lalógica de negocio se implementabasándose en clases predefinidas por elframework y siguiendo el patrón Facade.

Page 22: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 22/62

 Apache Struts Framework (…) 

Facilita y soporta la construcción de lainterfaz de la aplicación utilizando un

conjunto de tags predefinidos. Se busca es evitar el uso de scriptles, que

son trozos de código Java entre “<%” y

“%>”; para ganar mantenibilidad y

performance. Permite el desarrollo de sus componentes

en paralelo o por personal especializado.

Page 23: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 23/62

 Apache Struts Framework (…) 

El framework provee tres componentes: Un manejador de petición proporcionado por el

desarrollador de la aplicación, que se usa para

relacionarlo a una determinada URI. Un manejador de respuesta que se utiliza para

transferir el control a otro recurso que seencargará de completar la respuesta.

Una biblioteca de tags que ayuda a los

desarrolladores a crear aplicaciones interactivasbasadas en formularios.

Page 24: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 24/62

 Apache Struts Framework (…) 

Struts provee la infraestructura básica parala implementación del patrón MVC,

permitiendo así que los desarrolladorespuedan concentrarse en la lógica denegocios.

El framework está compuesto por

aproximadamente 300 clases e interfacesque están organizadas en alrededor de 12paquetes de nivel superior.

Page 25: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 25/62

Struts: Funcionamiento

El navegador genera una solicitud que esatendida por el Controlador (un Servletespecializado).

El Controlador también se encarga deanalizar la solicitud, seguir la configuraciónque se le ha programado en su XML yllamar al Action correspondiente pasándole

los parámetros enviados. El Action instanciará y/o utilizará los objetosde negocio para concretar la tarea.

Page 26: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 26/62

Struts: Funcionamiento (…) 

Según el resultado que retorne el Action, elControlador derivará la generación de

interfaz a una o más JSPs, las cualespodrán consultar los objetos del Modelopara mostrar información de los mismos.

Page 27: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 27/62

Struts: Funcionamiento (…) 

Page 28: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 28/62

Struts: Controlador

La clase ActionServlet es el corazón delframework ya que es el controlador y se

configura como servlet en el archivoweb.xml

Page 29: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 29/62

Struts: Controlador (…) 

Cada vez que un usuario hace una peticiónes manejada por Struts Action Servlet.

Cuando el ActionServlet recibe la peticiónintercepta la URL y basado en el archivo deconfiguración struts-config.xml, dirige lapetición al Action Class correspondiente.

El Action Class es parte del controlador y seencarga de comunicarse con el modelo.

Page 30: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 30/62

Struts: Controlador (…) 

Todas las peticiones atendidas por elframework siguen un patrón en su

nomenclatura, por defecto *.do, pero éstese puede cambiar en el archivo web.xml.

Page 31: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 31/62

Struts: struts-config.xml

Es el archivo de configuración de Struts,aquí se mapean las acciones (peticiones).

Sección <form-beans> contiene lasdefiniciones de beans.

Se usa un elemento <form-bean> por cadabean de formulario, tiene los siguientes

atributos importantes: Name: Identificador único para referenciarlo en

los mapeos de acciones.

Page 32: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 32/62

Struts: struts-config.xml (…) 

Type: ruta completa de la clase Java del beande formulario.

Sección <action-mappings> contiene lasdefiniciones de acciones, se usa unelemento <action> por cada acción, sedefinen los siguientes atributos:

Path: nombre de la clase action en relación alcontexto de la aplicación.

Type: ruta completa de la clase Java de la claseAction.

Page 33: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 33/62

Struts: struts-config.xml (…) 

Name: El nombre del <form-bean> para usarcon esta action, si corresponde.

Forward: ruta del archivo JSP a llamar.

Dentro de cada <action> se pueden definirmás de un forward, teniendo las siguientespropiedades:

Name: nombre del forward que será utilizado alllamarlo desde la clase Action.

Path: ruta de la página JSP.

Page 34: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 34/62

Struts: Action Class

Una clase Action de una aplicación Strutsextiende a la claseorg.apache.struts.action.Action.

Una clase Action actúa como un envoltoriopara la lógica de negocio y provee unainterfaz al modelo.

Es el mediador entre la vista y el Modelo, yaque transmite los datos desde la Vista haciael proceso específico del modelo y retornalos resultados en sentido contrario.

Page 35: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 35/62

Struts: Action Class (…) 

Una acción funciona como un adaptadorentre una petición HTTP entrante y la lógicade negocio creando una instancia de la

Action correspondiente y ejecutando elmétodo execute().

Por lo tanto es necesario que la subclase

sobreescriba el método execute(). No se debe añadir lógica de negocio en ella,

mejor utilizar otra capa DAO.

Page 36: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 36/62

Struts: Action Class (…) 

Método execute():

public ActionForward execute(ActionMapping mapping,

ActionForm form, javax.servlet.http.HttpServletRequest request,

 javax.servlet.http.HttpServletResponse response) throws java.lang.Exception

Page 37: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 37/62

Struts: Action Class (…) 

Sus parámetros son:

mapping - El ActionMapping usado paraseleccionar esta instancia

form - ActionForm bean para esta petición, si existe

request - La petición HTTP que se está procesando

response - La respuesta HTTP que se estácreando.

Lanza una excepción si en la lógica denegocio ocurre también una excepción.

Page 38: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 38/62

Struts: Action Form

Una de las tareas que consume muchotrabajo es la interacción con formularios, ya

sea para editar u obtener nuevainformación.

Las comprobaciones, la gestión de errores,el volver a presentar el mismo form al

usuario con los valores que puso y losmensajes de error están soportados porStruts con los Action Forms y JSP.

Page 39: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 39/62

Struts: Action Form (…) 

Un ActionForm es un JavaBean que seextiende

org.apache.struts.action.ActionForm. Implementa los métodos get y set para cada

input de un formulario de una página, y losmétodos validate y reset.

Se llena automáticamente en el lado delservidor con los datos introducidos desdeun formulario en el lado del cliente.

Page 40: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 40/62

Struts: Modelo

Comprende toda la lógica del negocio, sonlas clases Java que el desarrollador tiene

que implementar. No existe un formato definido para la

creación de estos componentes, elframework proporciona interfaces a bases

de datos, etc. Se elige el modelo de acuerdo con los

requerimientos del cliente.

Page 41: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 41/62

Struts: Vista

Los componentes de la Vista son JSP y seencargan de la presentación de la

información al usuario y del ingreso de susdatos.

Muestran los datos proporcionados por loscomponentes del modelo.

Struts provee soporte para construirfácilmente la interfaz de usuario a través dela utilización de HTML Tag Library.

Page 42: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 42/62

Struts: Vista (…) 

Pudiendo obtener aplicaciones multi-idioma,interacción con formularios y otras

utilidades. Para usar los Struts HTML Tags es

necesario incluir la siguiente línea en elJSP:

<%@ tagliburi="http://jakarta.apache.org/struts/tags-html"prefix="html" %>

Page 43: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 43/62

Struts: Tag Library

<html:html> Genera el tag <html>. <html:form> Genera <form> <html:button> Genera el tag <input type="button">.

<html:submit> Genera <input type="submit"> paraenviar los datos ingresados.

<html:reset> Genera <input type="reset">

<html:checkbox> Genera el tag <input

type="checkbox"> <html:hidden> Genera el tag <input type="hidden">. <html:img> Genera el tag <img>

Page 44: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 44/62

Struts: Tag Library (…) 

<html:link> Genera un link html

<html:password /> Genera el tag <inputtype=“password”>. 

<html:radio> Genera un radio button (<inputtype="radio">).

<html:select multiple="true" property="selectBox">Genera la lista en el formulario, selectBox debe ser

un array. Usar <html:options> para especificar lasentradas.

<html:text> Genera el tag <input type="text">

Page 45: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 45/62

<html:textarea> Genera el tag <textarea>.

<html:file /> Genera el tag <input type=“file”> para

subir archivos.

<html:base> Genera el tag <base>. Este tag debeser usado dentro del tag <head>

<html:errors> Genera el codigo html para mostrarlos errors que pueden ocurrir en la página.

<html:message key="thekey"/> Busca el valorcorrespondiente al key dado en el archivos derecursos y lo muestra.

Page 46: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 46/62

Struts: Internacionalización

Struts provee la facilidad de crearaplicaciones multilenguaje.

Para crear una aplicación multilenguaje se

debe crear un archivo de texto (ej:ApplicationResources.properties) en eldirectorio donde se encuentren las clasesde la aplicación(ej. empresa/aplicacion) que

contenga las claves y valores con el formatoclave.subclave=texto de los textos quepertenezcan al idioma principal.

Page 47: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 47/62

Struts: Internacionalización (…) 

Ejemplo:

login.titulo = Ingreso al Sistema

login.labelusuario = Usuario :login.labelpassword= Password :

Para cada idioma alternativo se creará unarchivo nuevo que se llame igual pero que

termine en "_xx.properties" siendo xx elcódigo ISO de idioma (ej:ApplicationResources_en.properties).

Page 48: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 48/62

Struts: Internacionalización (…) 

En struts-config.xml se debe configurar elTag /servlet/init-param/param-name

application y ponerle como param-value lalocalización del archivo con el idiomaprincipal.

Page 49: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 49/62

Struts: Internacionalización (…) 

Ejemplo:

<servlet>

<servlet-name>action</servlet-name> ...<init-param>

<param-name>application</param-name>

<param-value>

empresa.aplicacion.ApplicationResources</param-value>

</init-param>

Page 50: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 50/62

Struts: Internacionalización (…) 

Por ultimo se utiliza el Tag <bean:messagekey="clave.subclave"/> donde clave ysubclave corresponden al texto por el quese reemplazará según el idioma del usuario.

Ejemplo:

<H1>

<bean:message key="login.titulo"/> </H1>

Page 51: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 51/62

Struts: Utilización I

En el struts-config.xml

<action path="/Welcome"forward="/pages/Welcome.jsp"/>

En el JSP inicial

<html:link page="/Welcome.do">Primerapeticion al controlador</html:link>

En Welcome.jsp

Page 52: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 52/62

Struts: Utilización I (…) 

<%@ taglib uri="/tags/struts-bean" prefix="bean" %><%@ taglib uri="/tags/struts-html" prefix="html" %><html:html locale="true"><head>

<title><bean:message key="welcome.title"/></title><html:base/></head>

<body bgcolor="white">

<h3><bean:message key="welcome.heading"/></h3><p><bean:message key="welcome.message"/></p>

</body></html:html>

Page 53: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 53/62

Struts: Utilización II

En el struts-config.xml

<action path="/TestAction" type=“aplicacion.TestAction“ >

<forward name="testAction" path="/pages/TestAction.jsp"/>

</action>

En el JSP inicial <html:link page="/TestAction.do">Test the

Action</html:link>

Page 54: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 54/62

Struts: Utilización II (…) 

TestAction .java import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

public class TestAction extends Action{

public ActionForward execute(

ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception{return mapping.findForward("testAction"); } }

Page 55: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 55/62

Struts: Utilización II (…) 

En TestAction.jsp

<%@ taglib uri="/tags/struts-bean" prefix="bean" %><%@ taglib uri="/tags/struts-html" prefix="html" %>

<html:html locale="true"><head>

<title><bean:message key=“test.title"/></title> </head>

<body bgcolor="white"><h3><bean:message key=“test.mensaje"/></h3> </body></html:html>

Page 56: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 56/62

Apache Struts Project

La organización principal, a la cualpertenece este proyecto es la ApacheSoftware Foundation.

Apache Struts Project es la comunidad dedesarrollo de código abierto que se encargade crear y mantener el Apache Struts

Framework. Está formado por un grupo diverso de

voluntarios con sentido de colaboración.

Page 57: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 57/62

 Apache Struts Project (…) 

El proyecto es llamado "Struts“ porque la

finalidad del framework es proporcionar algocomo "bases invisibles" que soporten eldesarrollo de aplicaciones profesionales.

Struts nos proporciona el pegamento queune diversos elementos de la plataforma

Java en un todo coherente.

Page 58: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 58/62

 Apache Struts Project (…) 

El objetivo del proyecto es aprovechar losestándares existentes mediante laproducción de las piezas que faltan para sercapaces de crear aplicaciones de categoríaempresarial que sean fáciles de manteneren el tiempo.

Ofrece dos versiones principales delframework Struts.

Page 59: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 59/62

 Apache Struts Project (…) 

Struts 1 es reconocido como el frameworkmás popular para aplicaciones Web enJava.

Este framework, en su versión 1.x, esmaduro, está bien documentado, y cuentacon un amplio soporte.

Es la mejor alternativa para afrontarproblemas comunes de desarrollo.

Page 60: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 60/62

 Apache Struts Project (…) 

Struts 2 fue originalmente conocido comoWebWork 2; después de trabajarindependientemente por varios años, lascomunidades de Struts y WebWork unieronfuerzas para crear Struts 2.

El framework 2.x es la mejor opción para

afrontar elegantemente los problemasdifíciles del desarrollo.

Page 61: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 61/62

 Apache Struts Project (…) 

Struts 2 es un elegante y extensibleframework para la creación de la empresade aplicaciones web en Java.

El framework está diseñado para apoyar elciclo completo de desarrollo, desde laconstrucción, el despliegue y a lo largo del

periodo de mantenimiento de lasaplicaciones.

Page 62: struts-en-java-1205535054489007-2

5/11/2018 struts-en-java-1205535054489007-2 - slidepdf.com

http://slidepdf.com/reader/full/struts-en-java-1205535054489007-2 62/62

Links de interés

http://struts.apache.org/ 

http://struts.apache.org/2.x/ 

http://struts.apache.org/1.x/  http://www.roseindia.net/struts/