advertisement

Struts en Java

67 %
33 %
advertisement
Information about Struts en Java

Published on March 14, 2008

Author: siis

Source: slideshare.net

advertisement

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

Agenda Introducción Conceptos fundamentales Apache Struts Framework Características Controlador Vista Modelo Utilización Apache Struts Project

Introducción

Conceptos fundamentales

Apache Struts Framework

Características

Controlador

Vista

Modelo

Utilización

Apache Struts Project

Introducción Las aplicaciones Web son diferentes a los sitios Web convencionales porque éstas son capaces de crear una respuesta dinámica. Muchos sitios Web ofrecen sólo páginas estáticas, en cambio una aplicación Web es capaz de interactuar con bases de datos y lógica de negocios con la finalidad de personalizar la respuesta a enviar.

Las aplicaciones Web son diferentes a los sitios Web convencionales porque éstas son capaces de crear una respuesta dinámica.

Muchos sitios Web ofrecen sólo páginas estáticas, en cambio una aplicación Web es capaz de interactuar con bases de datos y lógica de negocios con la finalidad de personalizar la respuesta a enviar.

Introducción (…) Cuando aparecieron los Servlets Java, los desarrolladores se dieron cuenta de que eran más rápidos y más potentes que el CGI estándar, eran portables y extensibles. Lo problemático del asunto era el hecho de tener que escribir infinitas sentencias println() para enviar código HTML al navegador. Como respuesta a esto surgieron las JavaServer Pages.

Cuando aparecieron los Servlets Java, los desarrolladores se dieron cuenta de que eran más rápidos y más potentes que el CGI estándar, eran portables y extensibles.

Lo problemático del asunto era el hecho de tener que escribir infinitas sentencias println() para enviar código HTML al navegador. Como respuesta a esto surgieron las JavaServer Pages.

Introducción (…) Los JSP permiten escribir código Java dentro de ellos, pudiendo así mezclar fácilmente HTML con Servlets y tener todas las ventajas de éstos. Sin embargo este modelo no resolvía todavía los problemas propios de las aplicaciones Web, como control de flujo por ejemplo.

Los JSP permiten escribir código Java dentro de ellos, pudiendo así mezclar fácilmente HTML con Servlets y tener todas las ventajas de éstos.

Sin embargo este modelo no resolvía todavía los problemas propios de las aplicaciones Web, como control de flujo por ejemplo.

Introducción (…) Las aplicaciones Web en general tienen tres aspectos 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 de la aplicación. Con la práctica nos damos cuenta que si una aplicación Web grande tiene estos aspectos muy mezclados se vuelve difícil de mantener.

Las aplicaciones Web en general tienen tres aspectos 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 de la aplicación.

Con la práctica nos damos cuenta que si una aplicación Web grande tiene estos aspectos muy mezclados se vuelve difícil de mantener.

Introducción (…) Una forma de separar estos aspectos es usando 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).

Una forma de separar estos aspectos es usando 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).

Patrones de Diseño Los patrones de diseño son soluciones efectivas 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 los programadores inexpertos.

Los patrones de diseño son soluciones efectivas 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 los programadores inexpertos.

Patrones de Diseño (…) Los patrones de diseño se pueden clasificar, según su propósito, en: Patrones creacionales: abstraen el proceso de instanciación y ocultan los detalles de cómo los objetos son creados o inicializados. Patrones estructurales: describen como las clases y objetos pueden ser combinados para formar grandes estructuras y proporcionar nuevas funcionalidades.

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

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

Patrones estructurales: describen como las clases y objetos pueden ser combinados para formar grandes estructuras y proporcionar nuevas funcionalidades.

Patrones de Diseño (…) Patrones de comportamiento: tratan de cómo definir la comunicación e interacción entre los objetos de un sistema con la finalidad de reducir el acoplamiento entre éstos.

Patrones de comportamiento: tratan de cómo definir la comunicación e interacción entre los objetos de un sistema con la finalidad de reducir el acoplamiento entre éstos.

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 las partes se encarga de un aspecto específico y no interfiere con el de las otras.

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 las partes se encarga de un aspecto específico y no interfiere con el de las otras.

Patrón MVC: Modelo Representa las capas de lógica de negocios y persistencia de datos de la aplicación. Está formada por todos los objetos de negocio que soportan los procesos propios del dominio de la aplicación. Se encarga del acceso a los datos para realizar consultas, eliminaciones, inserciones, actualizaciones y almacenarlos en un medio persistente, como por ejemplo una base de datos, un archivo de texto, XML, etc.

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

Está formada por todos los objetos de negocio que soportan los procesos propios del dominio de la aplicación.

Se encarga del acceso a los datos para realizar consultas, eliminaciones, inserciones, actualizaciones y almacenarlos en un medio persistente, como por ejemplo una base de datos, un archivo de texto, XML, etc.

Patrón MVC: Vista Representa la capa de presentación de los datos. Se encarga de mostrar la información al usuario, por lo tanto tiene que ver con el diseño y formateo de los datos para su presentació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.

Representa la capa de presentación de los datos.

Se encarga de mostrar la información al usuario, por lo tanto tiene que ver con el diseño y formateo de los datos para su presentació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.

Patrón MVC: Controlador Se encarga de controlar el flujo de la aplicación. Tiene la función de recibir y responder a los eventos (acciones del usuario), convirtiendo éstos en solicitudes de servicio. Además, tiene que redirigir o asignar la parte de lógica de negocios a cada petición. Cuenta con un mecanismo para guardar las correspondencias entre peticiones y respuestas que se les asignan. Cada acción del usuario causa que se inicie de nuevo un nuevo ciclo.

Se encarga de controlar el flujo de la aplicación.

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

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

Cuenta con un mecanismo para guardar las correspondencias entre peticiones y respuestas que se les asignan.

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

Patrón MVC: Funcionamiento El procesamiento de los datos se lleva a cabo entre sus tres componentes. El controlador recibe una petición y decide quien la lleva a cabo en el modelo. Una vez terminadas las operaciones en el modelo, se transfiere el flujo al controlador, que devuelve los resultados a una vista asignada.

El procesamiento de los datos se lleva a cabo entre sus tres componentes.

El controlador recibe una petición y decide quien la lleva a cabo en el modelo.

Una vez terminadas las operaciones en el modelo, se transfiere el flujo al controlador, que devuelve los resultados a una vista asignada.

Patrón MVC: Funcionamiento (…) El controlador tiene almacenado la relación entre las posibles peticiones y la lógica de negocio que les corresponden.

El controlador tiene almacenado la relación entre las posibles peticiones y la lógica de negocio que les corresponden.

Patrón MVC: Ventajas Separación total entre las capas de presentación, lógica de negocio y acceso a datos. Esta separación es fundamental para el desarrollo 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 una manera sencilla, sin embargo con Struts se aplica en toda una aplicación Web convencional.

Separación total entre las capas de presentación, lógica de negocio y acceso a datos.

Esta separación es fundamental para el desarrollo 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 una manera sencilla, sin embargo con Struts se aplica en toda una aplicación Web convencional.

Frameworks Un framework es la extensión de un lenguaje, a través de una o más jerarquías de clases que implementan una funcionalidad y que pueden ser extendidas de manera opcional.

Un framework es la extensión de un lenguaje, a través de una o más jerarquías de clases que implementan una funcionalidad y que pueden ser extendidas de manera opcional.

Apache Struts Framework Originalmente fue creado por Craig R. McClanahan y donado al proyecto Jakarta de Apache Software Foundation en el año 2000. En Junio de 2001 se libera la primera versión, y desde entonces muchos desarrolladores han participado en la mejora continua de este framework. Actualmente se ha lanzado una nueva versión de este framework, la cual se denomina Struts 2.

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

En Junio de 2001 se libera la primera versión, y desde entonces muchos desarrolladores han participado en la mejora continua de este framework.

Actualmente se ha lanzado una nueva versión de este framework, la cual se denomina Struts 2.

Apache Struts Framework (…) Es un framework de código abierto para desarrollar aplicaciones Web J2EE usando el patrón de diseño Modelo-Vista-Controlador. Usa y extiende la Java Servlet API para motivar a los desarrolladores a adoptar la arquitectura MVC. Simplifica notablemente la implementación de una aplicación siguiendo la arquitectura del patrón MVC.

Es un framework de código abierto para desarrollar aplicaciones Web J2EE usando el patrón de diseño Modelo-Vista-Controlador.

Usa y extiende la Java Servlet API para motivar a los desarrolladores a adoptar la arquitectura MVC.

Simplifica notablemente la implementación de una aplicación siguiendo la arquitectura del patrón MVC.

Apache Struts Framework (…) El controlador ya se encuentra implementado en Struts, sin embargo y si es necesario es posible extenderlo o modificarlo. El flujo de la aplicación se controla desde un archivo XML. Proporciona la integración con el modelo, la lógica de negocio se implementa basándose en clases predefinidas por el framework y siguiendo el patrón Facade.

El controlador ya se encuentra implementado en Struts, sin embargo y si es necesario es posible extenderlo o modificarlo.

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

Proporciona la integración con el modelo, la lógica de negocio se implementa basándose en clases predefinidas por el framework y siguiendo el patrón Facade.

Apache Struts Framework (…) Facilita y soporta la construcción de la interfaz 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.

Facilita y soporta la construcción de la interfaz 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.

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 se encargará de completar la respuesta. Una biblioteca de tags que ayuda a los desarrolladores a crear aplicaciones interactivas basadas en formularios.

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 se encargará de completar la respuesta.

Una biblioteca de tags que ayuda a los desarrolladores a crear aplicaciones interactivas basadas en formularios.

Apache Struts Framework (…) Struts provee la infraestructura básica para la implementación del patrón MVC, permitiendo así que los desarrolladores puedan concentrarse en la lógica de negocios. El framework está compuesto por aproximadamente 300 clases e interfaces que están organizadas en alrededor de 12 paquetes de nivel superior.

Struts provee la infraestructura básica para la implementación del patrón MVC, permitiendo así que los desarrolladores puedan concentrarse en la lógica de negocios.

El framework está compuesto por aproximadamente 300 clases e interfaces que están organizadas en alrededor de 12 paquetes de nivel superior.

Struts: Funcionamiento El navegador genera una solicitud que es atendida por el Controlador (un Servlet especializado). El Controlador también 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á y/o utilizará los objetos de negocio para concretar la tarea.

El navegador genera una solicitud que es atendida por el Controlador (un Servlet especializado).

El Controlador también 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á y/o utilizará los objetos de negocio para concretar la tarea.

Struts: Funcionamiento (…) Según el resultado que retorne el Action, el Controlador derivará la generación de interfaz a una o más JSPs, las cuales podrán consultar los objetos del Modelo para mostrar información de los mismos.

Según el resultado que retorne el Action, el Controlador derivará la generación de interfaz a una o más JSPs, las cuales podrán consultar los objetos del Modelo para mostrar información de los mismos.

Struts: Funcionamiento (…)

Struts: Controlador La clase ActionServlet es el corazón del framework ya que es el controlador y se configura como servlet en el archivo web.xml

La clase ActionServlet es el corazón del framework ya que es el controlador y se configura como servlet en el archivo web.xml

Struts: Controlador (…) Cada vez que un usuario hace una petición es manejada por Struts Action Servlet. Cuando el ActionServlet recibe la petición intercepta la URL y basado en el archivo de configuración struts-config.xml, dirige la petición al Action Class correspondiente. El Action Class es parte del controlador y se encarga de comunicarse con el modelo.

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

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

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

Struts: Controlador (…) Todas las peticiones atendidas por el framework siguen un patrón en su nomenclatura, por defecto *.do, pero éste se puede cambiar en el archivo web.xml.

Todas las peticiones atendidas por el framework siguen un patrón en su nomenclatura, por defecto *.do, pero éste se puede cambiar en el archivo web.xml.

Struts: struts-config.xml Es el archivo de configuración de Struts, aquí se mapean las acciones (peticiones). Sección <form-beans> contiene las definiciones de beans. Se usa un elemento <form-bean> por cada bean de formulario, tiene los siguientes atributos importantes: Name: Identificador único para referenciarlo en los mapeos de acciones.

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

Sección <form-beans> contiene las definiciones de beans.

Se usa un elemento <form-bean> por cada bean de formulario, tiene los siguientes atributos importantes:

Name: Identificador único para referenciarlo en los mapeos de acciones.

Struts: struts-config.xml (…) Type: ruta completa de la clase Java del bean de formulario. Sección <action-mappings> contiene las definiciones de acciones, se usa un elemento <action> por cada acción, se definen los siguientes atributos: Path: nombre de la clase action en relación al contexto de la aplicación. Type: ruta completa de la clase Java de la clase Action.

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

Sección <action-mappings> contiene las definiciones de acciones, se usa un elemento <action> por cada acción, se definen los siguientes atributos:

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

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

Struts: struts-config.xml (…) Name: El nombre del <form-bean> para usar con esta action, si corresponde. Forward: ruta del archivo JSP a llamar. Dentro de cada <action> se pueden definir más de un forward, teniendo las siguientes propiedades: Name: nombre del forward que será utilizado al llamarlo desde la clase Action. Path: ruta de la página JSP.

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

Forward: ruta del archivo JSP a llamar.

Dentro de cada <action> se pueden definir más de un forward, teniendo las siguientes propiedades:

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

Path: ruta de la página JSP.

Struts: Action Class Una clase Action de una aplicación Struts extiende a la clase org.apache.struts.action.Action. Una clase Action actúa como un envoltorio para la lógica de negocio y provee una interfaz al modelo. Es el mediador entre la vista y el Modelo, ya que transmite los datos desde la Vista hacia el proceso específico del modelo y retorna los resultados en sentido contrario.

Una clase Action de una aplicación Struts extiende a la clase org.apache.struts.action.Action.

Una clase Action actúa como un envoltorio para la lógica de negocio y provee una interfaz al modelo.

Es el mediador entre la vista y el Modelo, ya que transmite los datos desde la Vista hacia el proceso específico del modelo y retorna los resultados en sentido contrario.

Struts: Action Class (…) Una acción funciona como un adaptador entre una petición HTTP entrante y la lógica de negocio creando una instancia de la Action correspondiente y ejecutando el mé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.

Una acción funciona como un adaptador entre una petición HTTP entrante y la lógica de negocio creando una instancia de la Action correspondiente y ejecutando el mé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.

Struts: Action Class (…) Método execute(): public ActionForward e xecute ( ActionMapping mapping, ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response ) throws java.lang.Exception

Método execute():

public ActionForward e xecute (

ActionMapping mapping,

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

) throws java.lang.Exception

Struts: Action Class (…) Sus parámetros son: mapping - El ActionMapping usado para seleccionar 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 de negocio ocurre también una excepción.

Sus parámetros son:

mapping - El ActionMapping usado para seleccionar 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 de negocio ocurre también una excepción.

Struts: Action Form Una de las tareas que consume 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 presentar el mismo form al usuario con los valores que puso y los mensajes de error están soportados por Struts con los Action Forms y JSP.

Una de las tareas que consume 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 presentar el mismo form al usuario con los valores que puso y los mensajes de error están soportados por Struts con los Action Forms y JSP.

Struts: Action Form (…) Un ActionForm es un JavaBean que se extiende org.apache.struts.action.ActionForm. Implementa los métodos get y set para cada input de un formulario de una página, y los métodos validate y reset. Se llena automáticamente en el lado del servidor con los datos introducidos desde un formulario en el lado del cliente.

Un ActionForm es un JavaBean que se extiende org.apache.struts.action.ActionForm.

Implementa los métodos get y set para cada input de un formulario de una página, y los métodos validate y reset.

Se llena automáticamente en el lado del servidor con los datos introducidos desde un formulario en el lado del cliente.

Struts: Modelo Comprende toda la lógica del negocio, son las clases Java que el desarrollador tiene que implementar. No existe un formato definido para la creación de estos componentes, el framework proporciona interfaces a bases de datos, etc. Se elige el modelo de acuerdo con los requerimientos del cliente.

Comprende toda la lógica del negocio, son las clases Java que el desarrollador tiene que implementar.

No existe un formato definido para la creación de estos componentes, el framework proporciona interfaces a bases de datos, etc.

Se elige el modelo de acuerdo con los requerimientos del cliente.

Struts: Vista Los componentes de la Vista son JSP y se encargan de la presentación de la información al usuario y del ingreso de sus datos. Muestran los datos proporcionados por los componentes del modelo. Struts provee soporte para construir fácilmente la interfaz de usuario a través de la utilización de HTML Tag Library.

Los componentes de la Vista son JSP y se encargan de la presentación de la información al usuario y del ingreso de sus datos.

Muestran los datos proporcionados por los componentes del modelo.

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

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 el JSP: <%@ taglib uri=&quot;http://jakarta.apache.org/struts/tags-html&quot; prefix=&quot;html&quot; %>

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 el JSP:

<%@ taglib uri=&quot;http://jakarta.apache.org/struts/tags-html&quot; prefix=&quot;html&quot; %>

Struts: Tag Library <html:html> Genera el tag <html>. <html:form> Genera <form> <html:button> Genera el tag <input type=&quot;button&quot;>. <html:submit> Genera <input type=&quot;submit&quot;> para enviar los datos ingresados. <html:reset> Genera <input type=&quot;reset&quot;> <html:checkbox> Genera el tag <input type=&quot;checkbox&quot;> <html:hidden> Genera el tag <input type=&quot;hidden&quot;>. <html:img> Genera el tag <img>

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

<html:form> Genera <form>

<html:button> Genera el tag <input type=&quot;button&quot;>.

<html:submit> Genera <input type=&quot;submit&quot;> para enviar los datos ingresados.

<html:reset> Genera <input type=&quot;reset&quot;>

<html:checkbox> Genera el tag <input type=&quot;checkbox&quot;>

<html:hidden> Genera el tag <input type=&quot;hidden&quot;>.

<html:img> Genera el tag <img>

Struts: Tag Library (…) <html:link> Genera un link html <html:password /> Genera el tag <input type=“password”>. <html:radio> Genera un radio button (<input type=&quot;radio&quot;>). <html:select multiple=&quot;true&quot; property=&quot;selectBox&quot;> Genera la lista en el formulario, selectBox debe ser un array. Usar <html:options> para especificar las entradas. <html:text> Genera el tag <input type=&quot;text&quot;>

<html:link> Genera un link html

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

<html:radio> Genera un radio button (<input type=&quot;radio&quot;>).

<html:select multiple=&quot;true&quot; property=&quot;selectBox&quot;> Genera la lista en el formulario, selectBox debe ser un array. Usar <html:options> para especificar las entradas.

<html:text> Genera el tag <input type=&quot;text&quot;>

Struts: Tag Library (…) <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 debe ser usado dentro del tag <head> <html:errors> Genera el codigo html para mostrar los errors que pueden ocurrir en la página. <html:message key=&quot;thekey&quot;/> Busca el valor correspondiente al key dado en el archivos de recursos y lo muestra.

<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 debe ser usado dentro del tag <head>

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

<html:message key=&quot;thekey&quot;/> Busca el valor correspondiente al key dado en el archivos de recursos y lo muestra.

Struts: Internacionalización Struts provee la facilidad de crear aplicaciones multilenguaje. Para crear una aplicación multilenguaje se debe crear un archivo de texto (ej: ApplicationResources.properties) en el directorio donde se encuentren las clases de la aplicación(ej. empresa/aplicacion) que contenga las claves y valores con el formato clave.subclave=texto de los textos que pertenezcan al idioma principal.

Struts provee la facilidad de crear aplicaciones multilenguaje.

Para crear una aplicación multilenguaje se debe crear un archivo de texto (ej: ApplicationResources.properties) en el directorio donde se encuentren las clases de la aplicación(ej. empresa/aplicacion) que contenga las claves y valores con el formato clave.subclave=texto de los textos que pertenezcan al idioma principal.

Struts: Internacionalización (…) Ejemplo: login.titulo = Ingreso al Sistema login.labelusuario = Usuario : login.labelpassword= Password : Para cada idioma alternativo se creará un archivo nuevo que se llame igual pero que termine en &quot;_xx.properties&quot; siendo xx el código ISO de idioma (ej: ApplicationResources_en.properties).

Ejemplo:

login.titulo = Ingreso al Sistema

login.labelusuario = Usuario :

login.labelpassword= Password :

Para cada idioma alternativo se creará un archivo nuevo que se llame igual pero que termine en &quot;_xx.properties&quot; siendo xx el código ISO de idioma (ej: ApplicationResources_en.properties).

Struts: Internacionalización (…) En struts-config.xml se debe configurar el Tag /servlet/init-param/param-name application y ponerle como param-value la localización del archivo con el idioma principal.

En struts-config.xml se debe configurar el Tag /servlet/init-param/param-name application y ponerle como param-value la localización del archivo con el idioma principal.

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>

Ejemplo:

<servlet>

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

<init-param>

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

<param-value>

empresa.aplicacion.ApplicationResources

</param-value>

</init-param>

Struts: Internacionalización (…) Por ultimo se utiliza el Tag <bean:message key=&quot;clave.subclave&quot;/> donde clave y subclave corresponden al texto por el que se reemplazará según el idioma del usuario. Ejemplo: <H1> <bean:message key=&quot;login.titulo&quot;/> </H1>

Por ultimo se utiliza el Tag <bean:message key=&quot;clave.subclave&quot;/> donde clave y subclave corresponden al texto por el que se reemplazará según el idioma del usuario.

Ejemplo:

<H1>

<bean:message key=&quot;login.titulo&quot;/>

</H1>

Struts: Utilización I En el struts-config.xml <action  path=&quot;/Welcome&quot;         forward=&quot;/pages/Welcome.jsp&quot;/> En el JSP inicial <html:link page=&quot;/Welcome.do&quot;>Primera peticion al controlador</html:link> En Welcome.jsp

En el struts-config.xml

<action  path=&quot;/Welcome&quot;         forward=&quot;/pages/Welcome.jsp&quot;/>

En el JSP inicial

<html:link page=&quot;/Welcome.do&quot;>Primera peticion al controlador</html:link>

En Welcome.jsp

Struts: Utilización I (…) <%@ taglib uri=&quot;/tags/struts-bean&quot; prefix=&quot;bean&quot; %> <%@ taglib uri=&quot;/tags/struts-html&quot; prefix=&quot;html&quot; %> <html:html locale=&quot;true&quot;> <head> <title><bean:message key=&quot;welcome.title&quot;/></title> <html:base/> </head>   <body bgcolor=&quot;white&quot;>   <h3><bean:message key=&quot;welcome.heading&quot;/></h3>   <p><bean:message key=&quot;welcome.message&quot;/></p> </body> </html:html>

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

<title><bean:message key=&quot;welcome.title&quot;/></title> <html:base/> </head>   <body bgcolor=&quot;white&quot;>   <h3><bean:message key=&quot;welcome.heading&quot;/></h3>   <p><bean:message key=&quot;welcome.message&quot;/></p> </body> </html:html>

Struts: Utilización II En el struts-config.xml <action path=&quot;/TestAction&quot; type= “aplicacion.TestAction“ > <forward name=&quot;testAction&quot; path= &quot;/pages/TestAction.jsp&quot;/> </action> En el JSP inicial <html:link page=&quot;/TestAction.do&quot;>Test the Action</html:link>

En el struts-config.xml

<action path=&quot;/TestAction&quot; type= “aplicacion.TestAction“ >

<forward name=&quot;testAction&quot; path= &quot;/pages/TestAction.jsp&quot;/>

</action>

En el JSP inicial

<html:link page=&quot;/TestAction.do&quot;>Test the Action</html:link>

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(&quot;testAction&quot;);  } }

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(&quot;testAction&quot;);  } }

Struts: Utilización II (…) En TestAction.jsp <%@ taglib uri=&quot;/tags/struts-bean&quot; prefix=&quot;bean&quot; %> <%@ taglib uri=&quot;/tags/struts-html&quot; prefix=&quot;html&quot; %> <html:html locale=&quot;true&quot;> <head>    <title><bean:message key=“test.title&quot;/></title> </head>   <body bgcolor=&quot;white&quot;>   <h3><bean:message key=“test.mensaje&quot;/></h3> </body> </html:html>

En TestAction.jsp

<%@ taglib uri=&quot;/tags/struts-bean&quot; prefix=&quot;bean&quot; %> <%@ taglib uri=&quot;/tags/struts-html&quot; prefix=&quot;html&quot; %> <html:html locale=&quot;true&quot;> <head>    <title><bean:message key=“test.title&quot;/></title> </head>   <body bgcolor=&quot;white&quot;>   <h3><bean:message key=“test.mensaje&quot;/></h3> </body> </html:html>

Apache Struts Project La organización principal, a la cual pertenece este proyecto es la Apache Software Foundation. Apache Struts Project es la comunidad de desarrollo de código abierto que se encarga de crear y mantener el Apache Struts Framework. Está formado por un grupo diverso de voluntarios con sentido de colaboración.

La organización principal, a la cual pertenece este proyecto es la Apache Software Foundation.

Apache Struts Project es la comunidad de desarrollo de código abierto que se encarga de crear y mantener el Apache Struts Framework.

Está formado por un grupo diverso de voluntarios con sentido de colaboración.

Apache Struts Project (…) El proyecto es llamado &quot;Struts“ porque la finalidad del framework es proporcionar algo como &quot;bases invisibles&quot; que soporten el desarrollo de aplicaciones profesionales. Struts nos proporciona el pegamento que une diversos elementos de la plataforma Java en un todo coherente.

El proyecto es llamado &quot;Struts“ porque la finalidad del framework es proporcionar algo como &quot;bases invisibles&quot; que soporten el desarrollo de aplicaciones profesionales.

Struts nos proporciona el pegamento que une diversos elementos de la plataforma Java en un todo coherente.

Apache Struts Project (…) El objetivo del proyecto es aprovechar los estándares existentes mediante la producción de las piezas que faltan para ser capaces de crear aplicaciones de categoría empresarial que sean fáciles de mantener en el tiempo. Ofrece dos versiones principales del framework Struts.

El objetivo del proyecto es aprovechar los estándares existentes mediante la producción de las piezas que faltan para ser capaces de crear aplicaciones de categoría empresarial que sean fáciles de mantener en el tiempo.

Ofrece dos versiones principales del framework Struts.

Apache Struts Project (…) Struts 1 es reconocido como el framework más popular para aplicaciones Web en Java. Este framework, en su versión 1.x, es maduro, está bien documentado, y cuenta con un amplio soporte. Es la mejor alternativa para afrontar problemas comunes de desarrollo.

Struts 1 es reconocido como el framework más popular para aplicaciones Web en Java.

Este framework, en su versión 1.x, es maduro, está bien documentado, y cuenta con un amplio soporte.

Es la mejor alternativa para afrontar problemas comunes de desarrollo.

Apache Struts Project (…) Struts 2 fue originalmente conocido como WebWork 2; después de trabajar independientemente por varios años, las comunidades de Struts y WebWork unieron fuerzas para crear Struts 2. El framework 2.x es la mejor opción para afrontar elegantemente los problemas difíciles del desarrollo.

Struts 2 fue originalmente conocido como WebWork 2; después de trabajar independientemente por varios años, las comunidades de Struts y WebWork unieron fuerzas para crear Struts 2.

El framework 2.x es la mejor opción para afrontar elegantemente los problemas difíciles del desarrollo.

Apache Struts Project (…) Struts 2 es un elegante y extensible framework para la creación de la empresa de aplicaciones web en Java. El framework está diseñado para apoyar el ciclo completo de desarrollo, desde la construcción, el despliegue y a lo largo del periodo de mantenimiento de las aplicaciones.

Struts 2 es un elegante y extensible framework para la creación de la empresa de aplicaciones web en Java.

El framework está diseñado para apoyar el ciclo completo de desarrollo, desde la construcción, el despliegue y a lo largo del periodo de mantenimiento de las aplicaciones.

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/

http://struts.apache.org/

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

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

http://www.roseindia.net/struts/

Add a comment

Related pages

Welcome to the Apache Struts project

Apache Struts. Apache Struts is a free, open-source, MVC framework for creating elegant, modern Java web applications. It favors convention over ...
Read more

Tutorials - Apache Struts

Apache Struts 2 Documentation. ... Creating java web applications with AngularJS and Struts2; 4 Easy Steps to create a Java based Web Application with ...
Read more

Java Programming/Struts - Wikibooks, open books for an ...

Struts is the most popular framework for developing Java based web applications. Struts is being developed as an open source project started by Apache ...
Read more

java.com: Java + You

IMPORTANT INFORMATION REGARDING THE SECURITY OF JAVA SE. Java.com. Download Help . Java+You, Download Today! Free Java Download
Read more

Struts 2 Tutorial – Apache POI - Tutorials for Kanban ...

Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full ...
Read more

Struts Tutorial - torsten-horn.de

Installation von Struts. Installieren Sie Java und ... Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org ...
Read more

Apache Struts 1 - Wikipedia, the free encyclopedia

Apache Struts 1 is a discontinued open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API ...
Read more

Manual Básico de Struts. Programación en Castellano.

Manual Básico de Struts ... COMPARTIR EN FACEBOOK ... SIGUIENTE ARTÍCULO Comparación de las Tecnologías Java para XML
Read more

Struts 2 | Esche's IT-Blog

Struts ist ein Open-Source-Framework für die Präsentations- und Steuerungsschicht von Java ... ignoriert und standardmäßig immer EN benutzt ...
Read more

Struts ActionForm working example tutorial - laliluna.de

Struts ActionForm working example tutorial . This tutorial explains the Struts form bean ActionForm using a small example application. Generals. Author:
Read more