Where Does Struts Go from Here?
The first thing people wonder about with Struts is how long it will take for a 1.2 release to appear. If you took the 1.0 to 1.1 timeframe as a guideline, you might be looking out into 2005 for a 1.2 release. However, the Struts development team took a lesson from the 1.1 release (too many changes between releases means that it's hard to lock it down). So the team plans to do many more frequent and focused releases.
The expectation is that 1.2 will release sometime in the next few months, with a few minor features that couldn't make the feature freeze cutoff for 1.1, as well as a migration of some of the resource management code to the Jakarta Commons libraries rather than the "proprietary" Struts versions. After that, there will be a release whenever there have been more than a few bug fixes or new features added. So expect Struts to look more like Linux from now on, frequent small releases.
Another thing to watch for is the eventual deprecation of the Struts tag libraries. The Struts taglibs largely date from before JSTL was available, and most of their functionalities can be better served by the equivalent JSTL tags at this point. As JSTL-compatible (Servlet 2.3) containers become the standard (such as Tomcat 4.0), there will be less and less reason to use (and, by extension, to maintain and improve) the Struts tag libraries.
Eventually, Struts may find itself out of a job. As the JSF standard evolved over the last year, more and more of the Struts functionality crept into JSF. This is not surprising, considering that Craig McClanahan, the "father" of Struts, is also the JSF Spec Lead. Because JSF is a JCP technology, it will be widely adopted and may eventually push out Struts because there is a lot of overlap between the two. Of course, the Struts development community is already busily discussing how to keep Struts relevant in a post-JSF world, and you can also expect tools to provide cross-compatibility and migration from Struts to JSF after JSF is available for production applications (again, in 2004.)
Two potential upgrades to Struts are being discussed. The first is the capability to use JSP pages as Actions, which would let developers dynamically redefine Actions without having to recompile or restart the server (as well as letting page authors create business logic using technologies like JSTL rather than pure Java). The other includes improvements to automated type conversion so that after validation, values are made available to the business logic in their native forms (Date, Integer, and so on) rather than as String. There are also ongoing active discussions of how Struts can become more internationalization-friendly and work as a framework for web services.