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 will consist of the WebWork 2.2 codebase, Struts Action 1.x compatibility layer, and perhaps Commons Chain integration.
- 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 will address the original goals of Struts Ti to simply development through annotations and workflow.
- Status Matrix – Where the project is at and where it is going
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
- June 30 brainstorming notes
- Original proposal
- http://www-128.ibm.com/developerworks/java/library/wa-rubyonrails/index.html - Ruby on Rails vs Struts comparison