Differences between revisions 1 and 2
Revision 1 as of 2005-08-31 05:25:13
Size: 2416
Editor: 216-228-28-196
Comment:
Revision 2 as of 2009-09-20 23:12:03
Size: 2416
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

Struts Ti 2.0 Proposal

Struts Ti 2.0 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 2.0 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 and Page Flow of Beehive, and the lessons learned from Struts 1.x.

Repository

/core
  /taglibs
  /flow
  /el
  /apps
  /plugins
/shale
  /framework
  /clay
  /mailreader
  /tests
  /use-cases
/tiles
/bsf
/build
/sandbox

Key Features

  • POJO-based action that combines an Action and ActionForm in a similar manner to JSF backing beans and WebWork 2 Commands

  • Intelligent defaults utilizing naming and placement conventions to require minimal, if any, configuration per page, however it will be possible to override everything on a global and per-action basis
  • Configuration can be “assumed” or declared through annotations, xml or properties files, or any other pluggable mechanism
  • Pluggable EL for data binding defaulting to JSP 2.0 EL but allowing OGNL or even BeanUtils

  • Integration of a dialog or page flow capability drawing from Beehive, Spring’s web flow, and Shale’s Dialogs.
  • Per-Action optional interceptor chain ala WebWork 2

  • Built-in dependency injection support

Design Goals

  • No servlet dependency in core framework
  • Spring-based dependency injection in core to allow for pluggability
  • No bias to any view technology
  • Ability to layer Struts 1.x compatibility on top
  • Highly toolable
  • Smooth integration into a portal/portlet environment
  • AJAX-friendly

Implementation

  • Built on the backbone of commons-chain
  • No restriction on multiple Servlets and/or Servlet Filter implementations
  • Key decision points (action selection for example) use CoR chain for maximum flexiblity

Dependencies

  • Servlets 2.4
  • Java 1.4 runtime, Java 1.5 to build
  • JSP 2.0 if taglibs used

StrutsTi/OriginalProposal (last edited 2009-09-20 23:12:03 by localhost)