
Offshore Java Web Development
WebWork is a Java web-application development framework. It is built specifically with developer productivity and code simplicity in mind, providing robust support for building reusable UI templates, such as form controls, UI themes, internationalization, dynamic form parameter mapping to JavaBeans, robust client and server side validation, and much more.
Now the Java development front is splits into two main areas that is: Web development and Swing client-side GUI development. The Swing developers use the excellent Swing toolkit and core Java APIs for the majority of their GUI development needs. Java Web developers also use core Java APIs, but in addition they use frameworks. Most of the enterprise-level, Web-based projects use some sort of an architecture that includes at least one framework. Why? This is because frameworks greatly simplify development and design of the project, decrease time to production, reduce amount of labor and code needed, and improve application performance.
Every framework for Web developments by design serves a specific purpose. It could be a Model-View-Controller implementation with Inversion of Control logic for coordination of client to server requests and actions on the server, separation of business logic from view layer, or Java to SQL mapping to abstract interaction with database layer. Also, it could be client data validation and view abstraction via custom framework tag libraries and JSTL (Java standard tag libraries).
WebWork is a Model-View-Controlled type of framework. This means it separates logic from view and simplifies Web development by using a powerful "action" concept on the server side.
It is built on top of a command pattern framework API called XWork. WebWork specific features include: dispatchers that handle/delegate requests; result types that support several view technologies (JSP, Velocity, JasperReports, XML, FreeMarker); and a small but powerful library of JSP tags and Velocity macros. Dispatchers invoke specified XWork actions that access and manipulate the model and provide easy access for the view to display model data.
WebWork is an open source Web development framework for building Model 2 applications. Philosophically, it is closer to Struts than Tapestry. It works within the existing Web APIs in Java rather than attempting to replace them completely. WebWork contains several concepts and constructs that are unique and that set it apart from other frameworks, such as the Pull Hierarchical Model-View-Controller design and the value stack, which supplies values to their custom JSP (Java Server Pages) tags. We begin with a history and background of the framework. We then explore some key concepts and constructs that are vital when you're working with the framework. As always, the principles of Model 2 development provide the guidelines for the samples and dictate a firm separation of concerns.
WebWork Lifecycle
The architecture of WebWork is based on the MVC, Command, and Dispatcher patterns and the principle of Inversion of Control. The life cycle of a WebWork request begins when the servlet container receives a new request. The new request is passed through a set of filters called the filter chain and sent to the FilterDispatcher. The FilterDispatcher forwards the request to the ActionMapper to determine what needs to be done with the request. If the request requires an action, it sends an ActionMapping object back to the FilterDispatcher.
Features of WebWork
- MVC-based pluggable architecture.
- An extensive validation framework.
- Good Internationalization support.
- Flexible Type conversion library.
- Extensive tag library.
- Support for multiple view technologies like JSP, FreeMarker, and velocity.
- Extensive support for FreeMarker.
- Easy integration with third party frameworks like Hibernate and Spring.
- Easy integration with J2EE-based third party APIs.
- Interceptor support to handle multiple form submissions and validations.
- Support for expression language (ONGL).
- Reusable Web development through themes and templates.
- Support for continuations.
- Sitegraph to map the flow of the Web application.
- Config browser to see configuration files at runtime.