Introdución a Apache Struts Framework

Siempre que queramos diseñar una aplicación web de gran calibre nos enfrentaremos al problema de organizar los módulos de manera que no nos quede ni una gran jsp con código java embebido (feo, feo…) ni un gran servlet que centraliza todo el sistema (también es feo, feo…). Entonces… ¿Cómo hacemos que nuestra aplicación web no sea un chiquero? ¿Cómo hacemos para organizarnos bien y dividir nuestras jsp de la lógica de negocio?


Afortunadamente para todos, un equipo de gente ya pensó por nosotros. Lo que pasó fue que muchísimos programadores ya se había hecho esas preguntas antes que nosotros puesto que todos pasaron por el mismo “patrón de problemática”. Entonces un equipo de cerebros inventaron una forma de ordenar las aplicaciones web de una forma que quede lindo, escalable y fácil de mantener y nos arreglaran el problema a todos juntos de una buena vez. Este patrón de diseño recibió el nombre de MVC (Modelo Vista Controlador).

Modelo: Es la representación de la Capa de Negocios con la cual el sistema piensa y resuelve los problemas del usuario.

Vista: Es la representación de la Capa de Presentación mediante la cual el usuario observa en la pantalla los resultados que produce la Capa de Negocios (Modelo).

Controlador: Esta entidad responde a eventos, usualmente acciones del usuario. Reacciona a estímulos que le indican que debe sacar la información de un lugar y ponerla en otro. Ejemplo: El usuario hace click en el botón Listado (Vista), un servlet (Controlador) capta ese evento y determina cual método de cual clase (Modelo) tiene que invocar, luego recupera la información de una clase de negocio (Modelo) y la muestra en la página web (Vista). Es simple… es un pasamanos.
¿Pero todo esto que tiene que ver con Struts?

¿Qué es Apache Struts Framework?

Apache Struts Framework es una herramienta que implementa el patrón de arquitectura MVC en Java. Nada más, ni nada menos que eso. El secreto es que aprendas a usar este patrón MVC.

El controlador ya se encuentra completamente implementado por Struts (incluye el procesamiento de peticiones, control de errores y manejo de formularios). Actúa como un puente entre la Vista y el Modelo. Es una gran ventaja porque te ahorras un montón de tiempo en programar el flujo de información y arreglar errores que esta gente ya arregló y testeo una infinidad de veces. La maravilla de esto es que solamente tienes que decirle a Struts cual es el evento/acción que esperas que se ejecute y en que página esperas que se muestre la información resultante. Así es como el corazón de Struts se encarga de esto. Y aunque parezca poco, deberías programar un gran sistema web java desde cero y sin Struts para poder darte cuenta de lo importante que es usarlo… no querrías pasar por ese calvario.

Struts posee toda la configuración del control centralizada en un xml muy fácil de escribir, del que hablaremos mas adelante, llamado struts-config.xml.

Pero apenas hablamos de un pedacito chiquito de la monstruosa capacidad de trabajo y cantidad de herramientas de este maravilloso Framework que llegó para quedarse.

Además incluye:
  • Struts Tags: Proporciona un conjunto de 6 librerías de etiquetas (Bean Tags, HTML Tags, Logic Tags, Nested Tags, Template Tags y Tiles Tags) que asisten en la tarea de la creación de la vista para evitar incluir scripts de Java en los JSPs. Nos ahorrarán muchísimas posibilidades de crear errores humanos y mucho código.:
  • Contenedor:Para guardar toda la información necesaria de la sesión del usuario.
  • Soporte para Internacionalización: Capacidad de internacionalizar del código para que puedan adaptarse a diferentes idiomas y regiones sin necesidad de cambios en el código.
  • Struts Tiles: Para creación y manejo de plantillas Web.
  • Reporte de Errores: Mecanismos para el manejo y reporte de errores facilísimo de usar. Proporciona un mecanismo extra para permitir la implementación de un manager global de excepciones.
  • Integración con Spring: Permite utilizar IoC, AOP, Interceptores, etc.
  • Integración con EJB.
  • Servicios de conexión JDBC: Utilizados para conexión con la BD mediante JDBC.
  • Y muchas cosas mas… Nunca dejes de investigar porque el crecimiento es constante.

¿Es Struts la mejor elección para todos los proyectos?

No. Si necesitas crear una aplicación simple solamente con algunas páginas, entonces no te conviene usar Struts ya que le agregarías una complejidad innecesaria debido al poco uso que le darías a este enorme Framework. No obstante, deberías implementar el patrón MVC, sin lugar a dudas, pero creando tu mismo las Vistas, los Modelos y los Controladores.
En cambio, si estas desarrollando una aplicación muy compleja, con muchas páginas, que necesita ser mantenida durante mucho tiempo, pues muy probablemente Struts sea tu mejor opción.

Entonces... ahora te queda empezar a programar!
Investiga todas las tecnologías nuevas que te mostramos. Acordate siempre que acá tenés los links a todas las tecnologías nuevas que aprendiste hoy.
No te olvides de ver lo nuevo de Struts: Struts 2. Tiene muchisimas cosas nuevas.


Recursos para Investigar:

No hay comentarios:

Publicar un comentario en la entrada