WebWork - WebWork

Webwork
Desarrollador (es) OpenSymphony
Lanzamiento estable
2.2.6 / 21 de julio de 2007  ( 2007-21 )
Escrito en Java (lenguaje de programación)
Sistema operativo Multiplataforma
Tipo Marco web
Licencia Licencia Apache 2.0
Sitio web www .opensymphony .com

WebWork era un marco de aplicación web basado en Java desarrollado por OpenSymphony que se fusionó con el marco actual de Struts2 . Fue diseñado para mejorar la productividad del desarrollador y simplificar el código. WebWork se construyó sobre XWork , que proporcionó un marco de patrón de comando genérico , así como un contenedor de inversión de control .

WebWork brindó soporte para crear plantillas de UI reutilizables, como controles de formulario, temas de UI, internacionalización , mapeo dinámico de parámetros de formulario a JavaBeans , validación del lado del cliente y del servidor, etc.

Objetivos de diseño y descripción general

En una aplicación web estándar de Java EE , el cliente normalmente enviará información al servidor a través de un formulario web . Luego, la información se entrega a un Servlet Java que la procesa, interactúa con una base de datos y produce una respuesta en formato HTML , o se entrega a un documento JavaServer Pages (JSP) que entremezcla HTML y código Java para lograr el mismo resultado. . Ambos enfoques a menudo se consideran inadecuados para proyectos grandes porque combinan la lógica de la aplicación con la presentación y dificultan el mantenimiento.

Los diseñadores de WebWork intentaron comprender lo que consideraban las limitaciones de los marcos existentes y trabajar para eliminarlas. Admite conversión de tipos, continuaciones e interceptores. WebWork también admite tecnologías de múltiples vistas como JSP, velocidad y FreeMarker.

WebWork fue diseñado e implementado con un conjunto específico de objetivos:

  • Web Designer nunca tuvo que tocar el código Java
  • Cree varias "Máscaras web" para una aplicación
  • Cambiar apariencia y sensación
  • Cambiar el diseño en una página web determinada
  • Cambiar el flujo entre las páginas web
  • Mover elementos de datos * existentes * de una página a otra
  • Integrar con varias infraestructuras backend
  • Reutilizar componentes
  • Realizar la internacionalización (i18n) de una aplicación web
  • Mantenga la API pequeña y al grano
  • Capacidad para aprender WebWork rápidamente, haciendo que todas las funciones más sofisticadas sean opcionales
  • Permita que el desarrollador elija cómo implementar tanto como sea posible, mientras proporciona implementaciones predeterminadas que funcionan bien en la mayoría de los casos.

Ciclo vital

La arquitectura de WebWork se basó en los patrones MVC Framework, Command y Dispatcher y el principio de inversión de control. El ciclo de vida de una solicitud de WebWork comienza cuando el contenedor de servlets recibe una nueva solicitud. La nueva solicitud pasa a través de un conjunto de filtros llamado cadena de filtros y se envía al FilterDispatcher. FilterDispatcher reenvía la solicitud al ActionMapper para determinar qué se debe hacer con la solicitud. Si la solicitud requiere una acción, envía un objeto ActionMapping de vuelta al FilterDispatcher. De lo contrario, ActionMapper devuelve un objeto nulo, lo que indica que no es necesario realizar ninguna acción. El FilterDispatcher reenvía la solicitud y el objeto ActionMapper al ActionProxy para una acción adicional. ActionProxy invoca al administrador de archivos de configuración para obtener los atributos de la acción, que se almacena en el archivo xwork.xml y crea un objeto ActionInvocation. El objeto ActionInvocation contiene atributos como la acción, contexto de invocación, resultado, código de resultado, etc. El administrador de archivos de configuración tiene acceso a estos archivos de configuración y ActionProxy lo utiliza como puerta de enlace a los archivos de configuración. El objeto ActionInvocation también tiene información sobre los interceptores que deben invocarse antes o después de que se ejecute una acción.

ActionInvocation invoca todos los interceptores enumerados en el objeto ActionInvocation y luego invoca la acción real. Cuando se completa la acción, ActionInvocation obtiene el código de resultado de la acción de la ejecución. Utiliza el código de resultado de la acción para buscar el resultado apropiado, que suele ser una página JSP, una plantilla de velocidad o una plantilla de marcador libre asociada con el código de resultado. ActionInvocation también ejecuta los interceptores nuevamente en el orden inverso y devuelve la respuesta como HttpServletResponse.

Fusión WebWork / Struts

El 27 de noviembre de 2005, el desarrollador de WebWork Patrick Lightbody anunció que WebWork se fusionaría con Struts 2. [2] Mientras que la próxima versión principal (WebWork 2.2.x) se lanzó con el nombre de WebWork, todas las futuras revisiones importantes (a saber, 2.3 .xy posteriores) se plegaría en Struts2.

Ted Husted, desarrollador de Struts, dijo en un correo electrónico que WebWork era muy similar a Struts 1.xy hacía ciertas cosas mejor que Struts. El fundamento de Husted y Lightbody era que combinar la tecnología de WebWork con la comunidad de Struts beneficiaría a ambos proyectos.

Licencia

WebWork utiliza la licencia del software OpenSymphony, que es una licencia de software Apache modificada (y totalmente compatible ) .

Ver también

Referencias