📄 roadmap.html
字号:
<li>Struts 1.2.x (pending) -
Minor enhancements, improvements, and refactorings only, as needed.
New features should be added to the 1.3.x series.</li>
<li>Struts 1.3.x (pending) -
Enhancements to product base, based on existing features or codebases.
<ul>
<li>Divide distribution into subprojects
<ul>
<li>core, apps, el, faces, site, taglibs</li>
<li>
<a href="http://struts.sourceforge.net/struts-flow/index.html">flow</a>, <a href="http://struts.sf.net/struts-bsf/">scripting</a> (new)</li>
</ul>
</li>
<li>Complete support for Maven builds (pending)</li>
<li>Move core to "Struts Chain" Request Processor (now in Contrib)</li>
<li>Move to Commons Resources (if available)</li>
<li>Enhance all configs to extend one configuration element from another,
as is done with Tiles Definitions</li>
</ul>
</li>
<li>Struts 1.4.x -
Enhancements to product base, based on undeveloped code.
<ul>
<li>Consider adding support for an Action context
(which also might be based on the Commons Chain of Responsibility package).</li>
<li>Consider adding support for Porlets by specifying an alternate Request Processor catalog.</li>
</ul>
</li>
<li>Other potential enhancements for the 1.x.x series
<ul>
<li>Consider <a href="http://struts.sf.net/struts-cocoon/">Cocoon Plugin</a>
</li>
<li>Consider <a href="http://struts.sourceforge.net/struts-spring/index.html">Spring Plugin</a>
</li>
<li>Consider adopting several popular extensions, including:
<ul>
<li>
<a href="http://struts.application-servers.com/">Layout</a>
</li>
<li>
<a href="http://sslext.sourceforge.net/">SSL Ext</a>
</li>
<li>
<a href="http://stxx.sourceforge.net">Stxx</a> (XLST)</li>
<li>
<a href="http://strutstestcase.sourceforge.net/">TestCase</a>
</li>
<li>
<a href="http://www.livinglogic.de/Struts/">Workflow</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<h2 id="Struts_2_0">Struts 2.0.x</h2>
<div class="indent">
<p>
Struts 2.x (aka Struts "Next Generation") will include broader enhancements.
We anticipate that the implementation will utilize the Servlet 2.4 / JSP 2.0
platform, and perhaps Java 1.5, but may optionally support earlier platforms.
</p>
<p>
We anticipate that Struts 2.x will rely on JSTL and the JavaServer Faces
API as supporting technologies.
However, the focus of the Struts framework will remain on the Controller
aspect of a Model 2/MVC architecture.
The core framework will continue to be both Model and View independent.
</p>
<p>
Development of Struts 2.x will include taking a completely fresh look at
the internal architecture.
The goal for 2.x will be to incorporate everything we've learned in the past
years of Struts usage, and create something even better.
Development will follow current best practices, like Test Driven Development,
and rely on technologies like Maven for project management.
</p>
<p>
Of course, it is anticipated that the Struts team will continue to support
the 1.x codebase for a long time with bugfixes and incremental enhancements.
(Mainly because many of us will still be using it on our production sites!)
Accordingly, it is anticipated that the development of the 2.x and 1.x
series will occur in tandem.
At some point, 2.x milestones may appear alongside new 1.x releases.
</p>
<p>
As Struts 1.x evolves, some (or all) target features may overlap.
Target features for Struts 2.x include:
</p>
<ul>
<li>
Comprehensive unit test coverage for all core features
</li>
<li>
Enhanced support for using Struts in large team environments.
</li>
<li>
Transparent support for a portlet environment (JSR 168), with
minimal-to-no changes in your business logic and pages.
</li>
<li>
Direct support for JSTL/JSF taglibs and the JSF API
</li>
<li>
Enhanced support for other presentation layers, such as XLST
</li>
<li>
Enhanced support for scriptable Actions, using technologies like BSF or Jelly
</li>
<li>
Refactoring for new technologies available on the Servlet 2.4/ JSP 2.0 platform
</li>
</ul>
<p>
An early proposal for one possible implementation of Struts 2.x, "Struts Jericho",
is available in the <a href="http://svn.apache.org/viewcvs.cgi/struts/core/trunk/contrib/struts-jericho/?root=Apache-SVN">contrib folder</a>.
</p>
</div>
<h2 id="Portlets">Portlet (JSR-168) Whiteboard</h2>
<div class="indent">
<p>
There are three major issues with supporting JSR-168 (and I'm sure a bunch of smaller ones as well):
</p>
<ul>
<li>
Struts APIs assume servlet API objects (ServletContext, ServletRequest, ServletResponse), whereas JSR-168
talks aboutPortletContext, PortletRequest, and PortletResponse.
We'd either need to change the calling sequence for Action.execute() -- problematic for backwards
compatibility -- or fake it somehow in a portlet environment.
</li>
<li>
The lifecycle of a portlet request is actually divided into two chunks -- processing and then rendering.
From a Struts perspective, that means making sure that the first part of the request processor pipeline
need to happen in the "process" part, and the forwarding to the resulting page needs to happen in the
"render" part.
</li>
<li>
Today, Struts owns the process of calculating URLs for pages and actions.
Because it's in a webapp, it knows exactly what to do for the developer.
However, in a portlet container it's actually the portal server that manages URLs, so a Struts-based
portlet would need to interact with the portlet APIs for this purpose.
</li>
</ul>
<p>
A strong goal should be that a Struts application should be usable either as a webapp or as a portlet, with
little (ideally no) changes.
Therefore, we should build whatever it takes to support this into the standard Struts distribution, which would
then be used in both environments.
</p>
</div>
<h2 id="jsf">JavaServer Faces</h2>
<div class="indent">
<p>
Struts is providing support for <a href="http://java.sun.com/j2ee/javaserverfaces/">JavaServer Faces</a>
through the Struts Faces Integration Library. The Struts Faces tablib allows developers to migrate
pages to JSF but retain use of their Actions. Pages can be migrated on a one-by-one basis. The
Struts Faces taglib is still under development, and a 1.0.x release is forthcoming.
</p>
<p>
As JSF comes into broader use, it is expected that
Struts developers will continue to offer enhancements to make it even easier to use Struts with JSF.
</p>
<p>
The SourceForge <a href="http://sf.net/projects/myfaces">MyFaces</a> team is in the process of
joining the Apache Software Founcation. Once the Apache MyFaces team has access to the Apache TCK, it
is expected to be recognized as a certified JSF implementation.
</p>
<p>
For more about Struts and JavaServer faces, see:
</p>
<ul>
<li>Craig McClanahan's <a href="http://blogs.sun.com/roller/page/craigmcc/20040927">blog entry</a>
</li>
<li>Our <a href="faqs/kickstart.html#jsf">FAQ</a>
</li>
<li>
<a href="http://www.jamesholmes.com/JavaServerFaces/">Java Server Faces Resources at JamesHomes.com</a>
</li>
</ul>
</div>
<h2 id="Proposals">Relevant Proposals</h2>
<div class="indent">
<ul>
<li>
<a href="http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/chain/">Commons Chain of Responsiblity
package</a>
</li>
<li>
<a href="http://cvs.apache.org/viewcvs/jakarta-struts/contrib/struts-chain/">CoRe Request Processor</a>
</li>
<li>
<a href="http://wiki.apache.org/struts/StrutsRelease127">Release Plan 1.2.7</a>
</li>
<li>
<a href="proposals/struts-faces.html">struts-faces taglib</a>
</li>
</ul>
</div>
<hr class="section" />
<div class="indent">
<p class="right">Next:
<a href="http://svn.apache.org/viewcvs.cgi/struts/?root=Apache-SVN">Source Repository</a>
</p>
</div>
<hr class="section" />
<div class="indent">
<p class="version">Website updated from repository: 2004 OCT 23 by husted.</p>
<p class="version">Javadocs updated from repository: 2004 OCT 15 by husted.</p>
</div>
</div>
<!--end main-->
</div>
<!--end content-->
<div id="footer">
<img id="powered-logo" alt="Powered by Struts" src="./images/struts-power.gif" />
Copyright (c) 2000-2005, The Apache Software Foundation <span class="noprint">-
<a href="http://wiki.apache.org/struts/StrutsDocComments">Comments?</a>
</span>
</div>
<!--end footer-->
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -