Struts Ti is a simplified Model 2 framework for developing webapps which allows the developer better access to the underlying servlet/portlet environment. It serves a niche of web applications that don’t want the additional complexity of server-side components and verbose configuration, yet want the structure and controller features of a modern web framework. Struts Ti builds on the directions of Struts 1.x, yet re-implements the framework to provide a clean slate for the next generation of Struts Ti. It aims to combine the simplicity of Ruby on Rails and NanoWeb, the refinement of WebWork 2, the tool-friendly authoring of Beehive, and the history of Struts 1.x.
The key word for Struts Ti is simplicity. Ideally, Struts Ti should approach Ruby on Rails levels of easy of use, yet scale up to large applications providing a smooth transition to JSF if desired.
The big announcement of Struts Ti is that it includes a merger between Struts and WebWork, such that Struts Ti will start with the migrated WebWork 2.2 codebase. This development as pushed back some of the annotation-driven next generation features as the first goal is now to create a stable core consisting of the WebWork codebase and a new Struts Action 1.x compatibility layer to assist in application migration.
Struts Ti is in the Struts sandbox for continued development and possible eventual acceptance as a Struts subproject, and is NOT an official Struts sub-project and as such, is not ready for operational use.
Phase 1
Phase 1 will consist of the WebWork 2.2 codebase, Struts Action 1.x compatibility layer, and perhaps Commons Chain integration.
References
Original Proposal -- The original WebWork merger proposal on the Struts dev mailing list
Patrick's weblog entry -- Weblog entry by Patrick Lightbody announcing the merger
TSS thread -- The Server Side thread on the merger
WebWork merger FAQ -- Questions and answers regarding the merger
Quicktopic thread -- Quick Topic thread discussing the merger
Phase 2
Phase 2 will address the original goals of Struts Ti to simply development through annotations and workflow.
Project Management
Status Matrix -- Where the project is at and where it is going
Concepts
These pages are a reflection of possibly outdated discussions and not necessarily the current direction or implementation.
Controller mockup -- A mock of a Controller.java class with a description of its design and features
Action mappings -- Flexible way to map URL's to actions
Form validation -- How to handle validation
JSP tags -- Approaches to a JSP taglib
State management -- Page Flow state management and modularity
XWork -- Details and discussion of the layer that's built on XWork
Beehive Page Flow -- Some info on features brought in with Beehive Page Flow
References
http://www-128.ibm.com/developerworks/java/library/wa-rubyonrails/index.html - Ruby on Rails vs Struts comparison
Links
http://beehive.apache.org/ - Apache Beehive
http://jakarta.apache.org/commons/chain/ - Commons Chain