Seleccionar página

!– @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } –>

Stripes es un framework de presentación opensource cuyo principal objetivo es la creación de aplicaciones web reduciendo la configuración al mínimo. Intenta que el desarrollo sea simple y rápido para los desarrlladores.

Modelo de programación

Stipes sigue un modelo de programación basado en acciones. La espina dorsal del framework es el interface ActionBean que deben implementar todas las clases que respondan a eventos de la interfaz de usuario.

Cada ActionBean está asociado a una URL que será invocada desde un formulario y en él se encuentra la lógica de negocio, las reglas de validación y las variable que sirven de backend a las del formulario. Los ActionBean también pueden ser configurados como EventListeners.

A grandes rasgos, su funcionamiento sería el siguiente:

1. En base a la URL de la petición se selecciona un ActionBean y se establece su ActionBeanContext

2. Se determina el método a ejecutar para el evento recibido en la petición

3. Se pone el valor de los elementos del formulario de la petición en las variables del ActionBean, ejecutando la validación si es necesario

4. Se invocan los métodos de validación personalizados

5. Se invoca el método correspondiente en el ActionBean

6. Si el ActionBean devuelve una Resolution no nula, se ejecuta para determinar la vista a mostrar.

Capas afectadas

Se centra en el manejo de las capas de presentación y negocio.

MVC push/pull

Sigue un modelo push. Asocia a cada formulario un ActionBean usando anotaciones.

Internacionalizacion (i18n) y localización (L10n)

Stripes proveé de un objeto LocalePicker capaz de reconocer el Locale del cliente y la codificación de caracteres en cada petición y escoger el adecuado de entre los soportados por la aplicación. Permite definir archivos de mensajes propios siguiendo las convenciones de nombrado de los ResourceBundles.

Sistema de seguridad

Se proporciona un sistema de seguridad llamado stripes-security como extensión al núcleo del framework que proporciona un sistema de autorización basado en roles.

Sistema de plantillas (templates)

Proporciona etiquetas para crear de una manera simple vistas compuestas a partir de fragmentos reutilizables

Sistema de validación

Proporciona una serie de reglas de validación que son establecidas mediante anotaciones desde los ActionBean y se encargan de validar los campos de entrada de los formularios. También permite añadir métodos propios de validación y manejar los errores de validación generados.

Sistema de navegación (pageflow)

No proporciona un sistema de navegación.

Sistema de caché

No proporciona un sistema de caché.

Testeabilidad

Los test de unidad son sencillos usando frameworks de test como JUnit o TestNG, ya que los ActionBeans son POJOs que pueden ser instanciados directamente. además, Stripes proporciona un conjunto de MockObjects que implementan interfaces de la especificación Servlet y pueden ser usados para recrear el entorno en el que se ejecutarán los ActionBean.

Mapeo Objeto-Relacional (ORM)

No tiene un sistema ORM propio pero se integra con hibernate. Para una integración sencilla conviene el uso de la librería Stripernate.

Programación Orientada a Aspectos (AOP)

No dispone de AOP pero puede conseguirse mediante su integración con Spring.

Inyección de dependencias (DI)

No soporta inyección de dependencias, pero puede conseguirse mediante su integración con Spring.

Ajax

No proporciona soporte nativo para usar Ajax en el lado del cliente y sugiere la utilización de librerías como Prototype o Dojo.

Para elaborar las respuestas Ajax en el lado del servidor, proporciona utilidades para transformar objetos java en objetos javascript.

Configuración

Este es uno de los puntos fuertes de Stripes. Para su puesta en funcionamiento solo requiere configurar el Stripes Filter y el Stripes Dispatcher Servlet en el web.xml.

El resto de configuración se realiza mediante anotaciones y en el caso de no existir estas, se recurre a la configuración por omisión.

Extensibilidad

Stripes ha sido diseñado para ser facilmente extensible sin necesidad de tener que configurar cada detalle. En la documentación se encuentra cómo hacer que coopere con Spring, Hibernate y FreeMaker entre otros.

Madurez

A pesar de ser un framework relativamente nuevo, su sencillez lo hace estable y la retroalimentación por parte de la comunidad lo ha ido perfeccionando desde su primera versión.

Última versión

La última versión de Stripes es la 1.4.3, liberada el 15 de Mayo del 2007

Curva de aprendizaje

La curva de aprendizaje es extremadamente corta. El principal objetivo de Stripes es la simplicidad, y según su documentación oficial, un desarrollador puede poner Stripes en funcionamiento en menos de 30 minutos.

Documentación

La página del proyecto proporciona una documentación bien estructurada con ejemplos, FAQ, How-Tos, una serie de artículos propios y otros añadidos por los usuarios. Es simple, clara y pensada para el usuario.