(Anterior) "MVC" ("Model-View-Controller") | JSTL y Tags JSP hechos a medida (Siguiente) |
Funcionalidades y Configuración
Funcionalidades
"Struts" es un proyecto Open-Source creado por la fundación Apache que facilita el desarrollo de aplicaciones con JSP's/Servlets diseñadas alrededor de paradigma "MVC" ("Model-View-Controller"); además Struts ofrece varias funcionalidades requeridas por las aplicaciones más complejas en ambientes Web de Java:
- Diseño de "Templates/Tiles" para aplicaciones tipo Portal.
- Utilización de Java Beans.
- Servlet Controlador con diversas funcionalidades.
- Tags para ambientes JSP's con lógica de ejecución.
Configuración
La configuración de Struts en ocasiones es considerada un poco compleja, sin embargo, una vez dominada sus beneficios sobrepasan su proceso de aprendizaje; inclusive ya existen herramientas Open-Source que automatizan varios procesos al utilizar Struts una de estas es: "Struts Console" (http://www.jamesholmes.com/struts/console)
La configuración de Struts es llevada al nivel de WAR's y para utilizarse dentro de éstos deben colocarse los siguientes componentes:
/WEB-INF/lib/struts.jar : Este JAR contiene las clases utilizadas por Struts.
/WEB-INF/lib/commons-*.jar : Serie de archivos JAR que deben estar presentes para la correcta ejecución de Struts; estos archivos se encuentran presentes en la misma distribución de Struts.
/WEB-INF/web.xml : Este archivo también utilizado para configurar varios aspectos de los JSP's/Servlets de un WAR, debe contener varios parámetros utilizados por Struts.
/WEB-INF/struts-config.xml : Este archivo contiene información extensa sobre la configuración de Struts, su uso es amplio ya que contiene las acciones empleadas por el Controlador, Generación de Java Beans, Mapeo de Errores y otros elementos.
ApplicationResources.properties : Este archivo/clase contiene parámetros estáticos utilizados por Struts, y es colocado en el WAR según la definición en struts-config.xml
/WEB-INF/*.tld: Los archivos terminados en
*.tld
("Tag Library Definitions") contienen las definiciones de Tags utilizados por Struts en JSP's, Struts incluye varias librerías de estos Tags, algunos:bean.tld
,html.tld
,logic.tld
ytemplate.tld
, vale mencionar que el uso de archivos*.tld
no es exclusivo de Struts, sino una manera de definir Tags JSP's hechos a medida y JSTL's, tema que será descrito en la última sección de este curso.
Aplicación Fragmentada tipo Portal
En la gran mayoría de los portales hoy en día se puede observar que las paginas se encuentran compuestas por diversos fragmentos donde cada uno contiene cierta lógica y/o contenido, esto es, en la parte superior una tabla de registro, en los costados: estados de tiempo, información financiera , menús; y en la parte inferior banners y/o derechos de autor.
Para el usuario final parece ser una página monolítica, pero si lo fuera, sería una ardua labor no sólo para diseñadores gráficos sino también para programadores , ya que se tendría que cuidar la integridad de todas las secciones constantemente, algo totalmente inaceptable en un portal que puede cambiar su contenido cientos de veces al día.
La solución a este problema es fragmentar una página en diversos componentes, y a través de Struts es posible realizar esta fragmentación en diversos JSP's/Servlets y documentos HTML.
Registro-Acceso mediante Java Beans
Como fue descrito en la sección anterior, el agrupar información mediante Java Beans otorga mayor modularidad al diseño empleado en una aplicación Web con JSP's y Servlets , a través de Struts se hace amplio uso de esta funcionalidad generándose instancias de Java Beans automáticamente al enviar información o cuando sea requerido por la aplicación, esta creación automática también puede ser invocada al ocurrir algún evento especifico con la ventaja de separar la lógica de ejecución ("Model") de la invocación ("Controller").
A continuación se describe el uso de esta metodología , así como el uso de ApplicationResources y otras facilidades ofrecidas por Struts.