Why not Struts?

This could be the first question coming to people's mind when another web application framework presents. Struts is the most popular option as a java web application framework today. However, the popular solution may not be the best solution in many cases while the solution that solves the the particular problem is. It's just like big company may not give you the dream job.

It's hard to summarize the difference between waterview and struts in one word. Please take a look at the design of waterview to fi decentlygure out the difference. Generally speaking, struts is a simple MVC framework implementation which focus on the page flow. The other fuctions are provided by a simple plugin architect. In a web application, the commons problems are much more than these.

Waterview vs. Turbine

The design of waterview is very similar to turbine while the underneath implementation makes huge difference. Both turbine and waterview is introducing a pluggable web application but waterview makes the way of configuring pipeline valves, error handler, page renderers and other components (services in turbine) unified and generic. In waterview, all these elements are components defined in xml file for plexus container.

Basically the intention of waterview is to make turbine more componentized and unified, eliminate the pipeline specific definition (pipeline xml), turbine specific configuration (TurbineResources.properties) and introduce avalon.

Waterview vs. Summit

Well, one difference is waterview is called waterview and summit is called summit.

Plexus summit component is a web application with excellent design. Unfortunately it has been suffocated for many years because lack of development. Many ideas in waterview were initiated from summit actually.

Feature Comparison

Function \ Project Waterview Struts Turbine Tapestry Sping Framework Summit
Page flow Loose Strict and central Loose Loose -- Loose
IOC container Avalon, Plexus No, plugin doesn't count Fulcrum, Avalon -- Spring Framework Plexus
XML GUI Components Supported as default No No Supoprted No No
Velocity GUI Supported Supported Supported as default -- Supported Supported as default
Form and validation Supported loosely Supported centrally Supported centrally -- -- No
Table, pagination Supoprted No No -- -- No