Criteria Twiff Tapestry Wicket NanoWar Struts
Development ideology. Unknown Unknown Swing based IoC based Command pattern based
Custom XML descriptors. Use of custom XML descriptors reduce the complexity of the framework but increase the learning curve because its a new file to learn. XML descriptors are not available for code completion in most IDEs. No Yes No No Yes
Taglibs. Taglibs are the de facto way of doing web applications from JSPs, Struts and other frameworks. The main problem with taglibs is your HTML file will generally no longer be editable by normal web development tools you might need a special IDE to support it. No No No N/A Yes
Custom rendering engine. One of the more popular rendering engines aside from the JSP standard is Velocity. However, that is an additional thing to learn and it also has the same problem as taglibs where the web development tools are not able to handle these extra tags. Tapestry, Wicket and Twiff also have their own custom engine, but are XML based. XML based XML based XML based No Yes
Abstract base page classes. Using inheritance does make things easier for framework development and also adds common functions to the page beans. However, it makes things harder to change or optimize since developers are locked into the framework and makes it hard to migrate to future versions. No Yes Yes Yes No