A Web Framework speeds development by providing libraries to satisfy the common development needs of Web applications, and by promoting code reuse among engineers and over projects. For example, many frameworks provide libraries for establishing database access and managing user sessions. We've developed this comparison matrix to help you learn about the differences between - and relative benefits of - the most popular open source Web frameworks: Shale, Struts, Wicket, WebWork, Rails, JBossSeam, MyFaces and Spring. Although Rails is not a Java project, we included it given its popularity.
To help you make a decision about which Web Framework to use, we went to the experts -- members of the OpenLogic Expert Community who are committers and expert users of the projects -- and asked them to answer a bunch of questions about each project.
The five questions we asked the experts appear below. To view more detail on the projects* compared across each question, just on click the question.
For comprehensive information on each project, search the OLEX Open Source Library. For a list of the open source developers we interviewed, click here.
*While no version of the projects is specified, you can assume that the information relates to the latest version in our library at the time of the last update.
This is a summary of the responses. For full detail, click here.
These are summarized answers. For more detail, click here.
This is the full response. For a summary of the response, click here.
In the early 2000's, WebWork broke off from Apache Struts 1. In 2006, WebWork 2.2 was pulled back in to the Apache Struts project and became Struts 2. Shortly thereafter, development on WebWork ceased. All releases after after 2.2 consist of patches. Active development is taking place on the Struts 2 code base.
Shale also began life as an Apache Struts subproject. Based on the JSF standard (which did not exist when Struts 1 development commenced in 2000), the Shale project broke off on its own in late 2006.A word about the relationship between Struts, WebWork and Shale in the OLEX Library. Although the entries in this table are organized into Struts 1 and Struts 2/Webwork, downloadable code in the OLEX library is organized differently. Under the Struts project, you will find Struts versions 1.0.2 through 2.0.9, and under the Webwork project you will find versions 2.1.7 through 2.2.4. OpenLogic policy is to offer all of a project's versions - regardless of the significance of the changes - together. Project developers, when asked to answer our 'Sweet Spot' questions, found it more natural to talk about in terms of Struts 1 and WebWork/Struts 2 given that the code bases are so closely related.For access to Struts 1 and Struts 2 code lines in the OLEX library, search for Struts. WebWork code is kept under the WebWork project.
OpenLogic would like to thank the following members of the OpenLogic Expert Community for their contributions to this effort and invite the community to email us (docs-at-openlogic-dot-com) if they'd like to augment, correct, update, refute or dispute any of the information included herein.
Allowed tags: <a> link, <b> bold, <i> italics