WebWork

WebWork

Infobox Software
name = Webwork
developer = OpenSymphony
latest release version = 2.2.6
latest release date = release date|2007|07|21
operating system = Cross-platform
programming language = Java (programming language)
status = Unmaintained
genre = Web Framework
license = Apache License 2.0
website = http://www.opensymphony.com/webwork/

WebWork was a Java-based web application framework developed by OpenSymphony that merged into the current Struts2 framework. It was developed with the specific intention of improving developer productivity and code simplicity. WebWork is built on top of XWork, which provides a generic command pattern framework as well as an Inversion of Control container.

WebWork provides 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, etc.

Design goals and overview

In a standard Java EE web application, the client will typically submit information to the server via a web form. The information is then either handed over to a Java Servlet which processes it, interacts with a database and produces an HTML-formatted response, or it is given to a JavaServer Pages (JSP) document which intermingles HTML and Java code to achieve the same result. Both approaches are often considered inadequate for large projects because they mix application logic with presentation and make maintenance difficult.

WebWork distinguishes itself by having understood existing frameworks' limitations and working to eliminate them. It supports type conversion, continuations, and interceptors. And unlike Struts, WebWork also supports multiple-view technologies like JSP, velocity, and FreeMarker.

Ultimately, WebWork has been designed and implemented with a specific set of goals, that are very important for its users. They are as follows:

#Web Designer never has to touch Java code
#Create multiple "Web Skins" for a application
#Change Look and Feel
#Change Layout on a given Web Page
#Change Flow among Web Pages
#Move *existing* data elements from one page to another
#Integrate with various backend infrastructures
#Reuse components
#Perform internationalization (i18n) of a web application
#Keep the API small and to the point
#Ability to learn WebWork fast, by making all the fancier features optional
#Allow the developer to choose how to implement as much as possible, while providing default implementations that work well in most cases [http://www.opensymphony.com/webwork_old/src/docs/manual/faq.html]

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. If not, ActionMapper returns a null object-which indicating that no action needs be taken. The FilterDispatcher forwards the request and the ActionMapper object to the ActionProxy for further action. The ActionProxy invokes the Configuration File manager to get the attributes of the action, which is stored in the xwork.xml file and creates an ActionInvocation object. The ActionInvocation object contains attributes like the action, invocation context, result, result code, etc. The configuration file manager has access to these configuration files and is used by the ActionProxy as a gateway to the configuration files. The ActionInvocation object also has information about Interceptors that need to be invoked after or before an action is executed.

ActionInvocation invokes all the interceptors listed in the ActionInvocation object and then invokes the actual action. When the action is completed, ActionInvocation gets the action result code from the execution. It uses the action result code to lookup the appropriate result, which is usually a JSP page, a velocity template or a freemarker template associated with the result code. ActionInvocation also executes the interceptors again in the reverse order and returns the response as an HttpServletResponse. [http://javaboutique.internet.com/reviews/webworks/]

WebWork / Struts merger

On November 27th, 2005, WebWork developer Patrick Lightbody announced that WebWork would be merging in to Struts2. [http://blogs.opensymphony.com/webwork/2005/11/webwork_joining_struts.html] While the next major release (WebWork 2.2.x) was released under the WebWork name, all future major revisions (namely, 2.3.x and beyond) would be folded into Struts2.

Ted Husted, developer of Struts admitted in an email that WebWork is very similar to Struts 1.x and in fact does certain things better than Struts. [http://www.mail-archive.com/dev%40struts.apache.org/msg13815.html] Both Husted and Lightbody's rationale was that combining WebWork's superior technology and Struts' superior community could only have a good effect on the Java community as a whole.

License

WebWork uses the OpenSymphony Software License which is a modified (and fully compatible with) Apache Software License.

ee also

* Apache Struts
* JavaServer Faces
* Tapestry
* Struts2

External links

* [http://www.opensymphony.com/webwork/ WebWork Homepage]
* [http://wiki.opensymphony.com/display/WW/WebWork WebWork Wiki]
* [http://javaboutique.internet.com/reviews/webworks/ WebWork: The New Framework on the Block]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • WebWork — Entwickler OpenSymphony Aktuelle Version 2.2.6 (21. Juli 2007) Betriebssystem plattformunabhängig Programmier­sprache Java Kate …   Deutsch Wikipedia

  • Webwork — can refer to:* A webwork plot is a type of literary form defined and practiced by Harry Stephen Keeler. * WeBWorK is a web based homework system by University of Rochester. * WebWorks Publisher is a single source publishing application developed… …   Wikipedia

  • Webwork — bezeichnet die technische Arbeit an Web Projekten, wie z. B. Webseiten. Der Begriff Webwork wird gegenwärtig hauptsächlich in Fachkreisen verwendet, da im allgemeinen Sprachgebrauch der Begriff Webdesign vorherrschend ist. Im Gegensatz zum… …   Deutsch Wikipedia

  • WeBWorK — Infobox Software name = WeBWorK caption = A screenshot of a problem in WeBWorK developer = University of Rochester latest release version = 2.4.5 latest release date = July 30, 2008 operating system = genre = license = Artistic and GPL website =… …   Wikipedia

  • webwork — noun Date: 1790 web 5b < a vast webwork of land holdings > …   New Collegiate Dictionary

  • webwork — noun A net or web; something structured or interlinked in a weblike manner. Most frequently, the three make up the webwork of his literary fabric. Syn: meshwork, network …   Wiktionary

  • webwork — noun a network of links or connecting pieces …   English new terms dictionary

  • webwork — …   Useful english dictionary

  • Harry Stephen Keeler — (November 3, 1890 – January 22, 1967) was a prolific but little known American author. Biography Born in Chicago in 1890, Keeler spent his childhood exclusively in this city, which was so beloved by the author that a large number of his works… …   Wikipedia

  • Apache Struts — Infobox Software name = Apache Struts developer = Apache Software Foundation latest release version = 1.3.8 latest release date = release date|2007|03|10 latest preview version = 1.3.9 latest preview date = release date|2007|08|01 operating… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”