<?xml version="1.0"?>
<document url="release-notes-1.1-b3.html">

  <properties>
    <author>Craig R. McClanahan</author>
    <author>Robert Leland</author>
    <author>Ted Husted</author>
    <author>Martin Cooper</author>
    <title>Struts Release Notes (Version 1.1 Beta 3)</title>
  </properties>

  <body>

  <section name="6.1 Release Notes" href="release_notes"/>
  <section name="Beta Notes" href="beta">

    <p>This section contains the release notes for
    <strong>nightly build</strong> of the Struts Framework,
    for changes that have taken place since
    <a href="release-notes-1.1-b2.html">Version 1.1 beta 2</a>
    was released. For a complete list of changes since the last
    production release, see the <a href="#Introduction">Introduction</a> </p>

  </section>

<section name="Beta Fixes" href="beta.Changes">

  <p>
  <strong>ApplicationConfig:</strong> In Struts 1.1. beta 3, the ApplicationConfig class 
  is renamed to ModuleConfig, to conform with the venacular.
  </p>

  <p>
  <strong>Dyna*Form:</strong> In Struts 1.1. beta 3, the reset method was changed so that 
  it conforms to the original ActionForm implementation.</p>

  <p>
  <strong>Blank application:</strong> Fixed configuration problem with Struts Blank 
  application.
  </p>

</section>

  <section name="Introduction" href="Introduction">

    <p>The remainder of this document contains the release notes for
    <strong>nightly build</strong> of the Struts Framework,
    and covers changes that have taken place since
    <a href="release-notes-1.0.2.html">Version 1.0.2</a>
    was released.  The following sections cover
    <a href="#New">New Features</a> and <a href="#Changes">Changes</a>
    to Struts.</p>

  </section>


  <section name="What's Included?" href="Included">

    <p>The binary distribution of this release includes the following
    files relevant to Struts:</p>
    <ul>
    <li><code>INSTALL</code> - Brief installation instructions.  See
        the <code>Struts Documentation Application</code>, or online at
        <a href="http://jakarta.apache.org/struts/">http://jakarta.apache.org/struts/</a>
        for more information.</li>
    <li><code>LICENSE</code> - The Apache Software Foundation license that
        defines the terms under which you can use Struts (and other software
        licensed by Apache).</li>
    <li><code>README</code> - A brief introduction to Struts.</li>
    <li><code>lib/</code> - Directory containing files you will need in
        your own applications.  The individual files of interest are:
        <ul>
        <li><code>commons-*.jar</code> - Release packages from the
            <a href="http://jakarta.apache.org/commons/">Jakarta Commons
            Project</a> that Struts relies on.  You are welcome to use these
            classes in your own applications.  These JAR files should be
            copied into the <code>/WEB-INF/lib</code> directory of
            your web application.</li>
        <li><code>struts.jar</code> - JAR file that contains the compiled
            Java classes of Struts.  You must
            place this file in the <code>/WEB-INF/lib</code> directory of
            your web application.</li>
        <li><code>struts-xxxxx.tld</code> - The tag library descriptor files
            for the Struts 1.1 tag libraries (bean, html, logic, and
            template).  You must place these files in the <code>/WEB-INF</code>
            directory of your web application, and reference them with
            appropriate <code>&lt;taglib&gt;</code> directives in your
            web.xml file.</li>
        <li><code>jdbc2_0-stdext.jar</code> - The JDBC 2.0 Optional Package
            API classes (package <code>javax.sql</code>).  You will need to
            include this file in the <code>/WEB-INF/lib</code> directory
            of your application, if it is not already made visible to web
            applications by your servlet container.</li>
        <li><code>struts-config_1_1.dtd</code> - The document type descriptor
            (DTD) for the Struts 1.1 configuration file (which is typically named
            <code>/WEB-INF/struts-config.xml</code>.  Your configuration file
            will be validated against an internal copy of this DTD -- this
            copy is available for reference purposes only.</li>
        <li><code>struts-config_1_0.dtd</code> - The document type descriptor
            (DTD) for the Struts 1.0 configuration file (which is typically named
            <code>/WEB-INF/struts-config.xml</code>.  Your configuration file
            will be validated against an internal copy of this DTD -- this
            copy is available for reference purposes only.</li>
        <li><code>web-app_2_2.dtd</code> - The document type descriptor (DTD)
            for web.xml files conforming to the Servlet 2.2 specification.
            This copy is for reference purposes only.</li>
        <li><code>web-app_2_3.dtd</code> - The document type descriptor (DTD)
            for web.xml files conforming to the Servlet 2.3 specification.
            This copy is for reference purposes only.</li>
        </ul></li>
    <li><code>webapps/</code> - Web Application Archive (WAR) files for the
        web applications that are included with Struts.</li>
    </ul>

  </section>

  <section name="What's New?" href="New">

    <p>Following are highlights of the new features. In the next section, we
    provide links to the JavaDocs for the affected classes.</p>

    <p><strong>New Configuration DTD</strong></p>
    <p> The Struts Configuration 1.0 DTD has been deprecated in favor of the
    <code><a href="http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">struts-config_1_1.dtd</a></code>.
    In the Struts 1.1 release, existing Struts configuration files can be
    loaded using either DTD version.
    </p>

    <p><strong>New Dependencies on Commons packages</strong></p>
    <p>Several components of Struts 1.0 have been found to be useful in
    general Java development (and not just useful for building Struts-based
    web applications), and have been migrated into the
    <a href="http://jakarta.apache.org/commons/">Jakarta Commons Project</a>.
    As a result, the current development version of Struts has been modified
    to rely on the Commons packages containing these classes, rather than the
    Struts internal versions.  In nearly every case, this involved changing
    only the <code>import</code> statements at the top of your classes.  Any
    applications that utilize these classes will need to be modified in the
    same way.  </p>
    <p>The following Commons packages contain the replacements for the
    corresponding Struts 1.0 classes:</p>
    <ul>
    <li><strong>BeanUtils Package</strong>
        [<a href="http://jakarta.apache.org/commons/beanutils.html"><code>org.apache.commons.beanutils</code></a>] -
        <code>org.apache.struts.utils.BeanUtils</code>,
        <code>org.apache.struts.utils.ConvertUtils</code>, and
        <code>org.apache.struts.utils.PropertyUtils</code>.</li>
    <li><strong>Collections Package</strong>
        [<a href="http://jakarta.apache.org/commons/collections.html"><code>org.apache.commons.collections</code></a>]  -
        <code>org.apache.struts.util.ArrayStack</code>,
        <code>org.apache.struts.util.FastArrayList</code>,
        <code>org.apache.struts.util.FastHashMap</code>,
        <code>org.apache.struts.util.FastTreeMap</code>.</li>
    <li><strong>Digester Package</strong> -
        [<a href="http://jakarta.apache.org/commons/digester.html"><code>org.apache.commons.digester</code></a>] -
        <code>org.apache.struts.digester.*</code>.</li>
    </ul>
    <p>The following Commons packages are also now used by various components
    of the Struts framework:</p>
    <ul>
    <li><strong>Database Connection Pool Package</strong>
    [<a href="http://jakarta.apache.org/commons/dbcp.html"><code>org.apache.commons.dbpc</code></a>]</li>
    <li><strong>FileUpload Package</strong>
    [<a href="http://cvs.apache.org/viewcvs/jakarta-commons-sandbox/fileupload/"><code>org.apache.commons.fileupload</code></a>]</li>
    <li><strong>Logging Package</strong>
    [<a href="http://jakarta.apache.org/commons/logging.html"><code>org.apache.commons.logging</code></a>]</li>
    <li><strong>Pool Package</strong>
    [<a href="http://jakarta.apache.org/commons/pool/index.html"><code>org.apache.commons.pool</code></a>]</li>
    <li><strong>Validator Package</strong>
    [<a href="http://cvs.apache.org/viewcvs/jakarta-commons/validator/"><code>org.apache.commons.validator</code></a>]</li>
    </ul>


    <p><strong>NOTE! XML Parser Prerequisite Updated</strong></p>

    <p>Struts now depends on an XML parser that conforms to the JAXP/1.1
    (rather than JAXP/1.0) APIs. Parsers known to work include the JAXP/1.1
    reference implementation, and Xerces 1.3.1.</p>

    <p><strong>SOURCE DEVELOPERS NOTE! Ant Prerequisite Updated</strong></p>
    <p>To build Struts from source Ant 1.4 or later is now required. This
    does not affect developers that use Struts from the binary distribution.</p>

    <p><strong>Struts Validator Integration</strong></p>
    <p>The new Commons-Validator is now integrated with Struts and exposed
    through the new Validator package.</p>

    <p><strong>Tiles - An advanced templating taglib</strong></p>
    <p>The Tiles JSP assembly framework has been integrated with Struts.</p>

    <p><strong>Nested - An very cool taglib extension</strong></p>
    <p>The Nested taglib is bundled with Struts and enhances the functionality
     of the existing Struts tags.</p>

    <p><strong>New Example Applications</strong></p>
    <p>New example applications for the Validator and Tiles are now part
    of the Struts distribution.</p>

    <p><strong>New Contrib directory for optional components</strong></p>
    <p>A new directory (<code>contrib</code>) in the CVS source repository has
    been added to accumulate Struts add-on extensions that are generally
    useful but have not yet been integrated into the standard code base.</p>

    <ul>
    <li>Scaffold - An extension of the Commons Scaffold toolkit of reusable 
    classes for building web applications.</li>
    <li>Struts-el - The optional Struts-el taglib makes it easy to use Struts 
    with JSTL (container with servlet 2.3 support required). </li>    
    </ul>

    <p>The source for these components is available in the Struts source
    distribution. Binary distributions may also be made available with the Struts
    download area. As optional components, these products have their own
    release cycles.</p>

    <p><strong>Action Package Additions</strong></p>
    <p>The following new features have been added to the basic controller
    framework [<code>org.apache.struts.action</code>]:</p>
    <ul>
    <li>The ActionServlet now provides support for modular Struts applications and
    sports several new extension points.</li>
    <li>The new <code>ActionMessages</code> class will support a superset of
        the capabilities of <code>ActionErrors</code>, and will be useful as
        a collection of general purpose messages, not just errors.</li>
    </ul>

    <p><strong>Upload Package Additions</strong></p>
    <p>The following new features have been added to the file upload classes
    [<code>org.apache.struts.upload</code>]:</p>
    <ul>
    <li><code>CommonsMultipartRequestHandler:</code> New class that implements
        file upload using the Jakarta Commons FileUpload package.</li>
    </ul>

    <p><strong>Util Package Additions</strong></p>
    <p>The following new features have been added to the utility classes
    [<code>org.apache.struts.util</code>]:</p>
    <ul>
    <li><code>LocalStrings:</code> Correct message regarding replaceable parameter so that it does not append an extraneous character.</li>
    <li><code>LabelValueBean:</code> New class that defines a collection of name/value pairs that can be used with the &lt;html:options&gt; tag, and elsewhere.</li>
    <li><code>MessageResources:</code> Escape any single quote characters that are included in the specified message string.</li>
    <li><code>computeParameters:</code> Allow a transaction token to be the only parameter in .</li>
    <li><code>RequestUtils:</code> Change to encode ampersands when building a query string.</li>
    </ul>

    <p><strong>Bean Taglib Package Additions</strong></p>
    <p>The following new features have been added to the
    <em>struts-bean</em> custom tag library
    [<code>org.apache.struts.taglib.bean</code>]:</p>
    <ul>
    <li><code>&lt;bean:write></code>: Add format, locale and bundle attributes to support formatting values according to current
    user locale, format string from attribute or format string from string resources.</li>
    <li><code>&lt;bean:cookie>, &lt;bean:header>, or &lt;bean:parameter>:</code> Correct the generated scripting variable type when tag is used with the "multiple" attribute.</li>
    <li><code>&lt;bean:message&gt;:</code> Added <code>name</code>, <code>property</code>, and  <code>scope</code> attributes to the tag, so that the message source key can be obtained dynamically from a bean or bean property.</li>
    </ul>

    <p><strong>HTML Taglib Package Additions</strong></p>
    <p>The following new features have been added to the
    <em>struts-html</em> custom tag library [<code>org.apache.struts.taglib.html</code>]:</p>
    <ul>
    <li><code>&lt;html:link&gt;:</code> Added 'action' attribute.</li>
    <li><code>&lt;html:options&gt;:</code> If the property specified by the 'property' attribute returns null, tag now throws an error message that indicates what the real problem is, rather than causing an NPE.</li>
    <li><code>&lt;html:option&gt; and &lt;html:options&gt;:</code> Added 'style' and 'styleClass' attributes.</li>
    <li><code>&lt;html:optionsCollection&gt;:</code> New tag providing a cleaner way of populating HTML options from a collection.</li>
    <li><code>&lt;bean:message&gt;:</code> Added 'name', 'property' and 'scope' attributes so that the message resource key can be obtained dynamically from a bean.</li>
    <li><code>&lt;html:messages&gt;:</code> New tag to iterate through a message collection in the new <code>ActionMessages</code> class.</li>
    <li><code>ActionForm:</code> Tag will now call <code>reset()</code> if it instantiates the ActionForm bean. This also requires that the bean instantiated by the tag to be an <code>ActionForm</code> subclass. </li>
    <li><code>&lt;html:image>:</code> Added the 'align' attribute.</li>
    <li><code>&lt;html:img>:</code> Added the mouse event attributes ('onclick', 'ondblclick', 'onmousedown', 'onmouseup', 'onmouseover', 'onmousemove', 'onmouseout').</li>
    <li><code>SubmitTag, SelectTag, LinkTag.java, CheckboxTag, ButtonTag, ImageTag, RadioTag, and TextArea tags:</code> Added indexed property. </li>
    </ul>

    <p><strong>Logic Taglib Package Additions</strong></p>
    <p>The following new features have been added to the
    <em>struts-logic</em> custom tag library [<code>org.apache.struts.taglib.logic</code>]:</p>
    <ul>
    <li><code>&lt;logic:empty&gt;</code> and
        <code>&lt;logic:notEmpty&gt;</code>: New tags that are similar to
        <code>&lt;logic:present&gt;</code> and
        <code>&lt;logic:notPresent&gt;</code> except for the treatment of
        empty strings.</li>
    </ul>

    <p><strong>Template Taglib Package Additions</strong></p>
    <p>The following new features have been added to the
    <em>struts-template</em> custom tag library
    [<code>org.apache.struts.taglib.template</code>]:</p>
    <ul>
    <li>None.</li>
    </ul>

    <p><strong>Documentation Additions</strong></p>
    <p>The following new features have been added to the Struts Documentation
    application (and corresponding contents on the Struts web site):</p>
    <ul>
    <li>Version Differences: New section in Release Notes to link to the JavaDocs for all Struts classes and members added or changed between versions.</li>
    <li>FAQ/HowTos: New documentation category organizes our FAQs and example-driven howTos. 
    New HowTos include "Building Applications", "Using SSL", and using Struts with Eclipse or NetBeans.</li>
    <li>User Guide Preface: New section to overview the enabling technologies behind Struts.</li>
    <li>Developer Guides: Added "cover page" to guides. These then link to the Package Descriptions and the API guides.</li>
    <li>HTML tag documentation: expanded to cover using indexed properties with iterate.</li>
    <li>Site Menu: Removed separate links to taglib documentation, since these are now in the Developer Guide.</li>
    <li>Newbie FAQ: The questions most likely to be asked by new developers using Struts. Still under development.</li>
    <li>Kickstart FAQ: The questions most likely to be asked when selecting Struts.</li>
    <li>1.0 JavaDoc: Added archival copy to web site for future reference.</li>
    <li>The UserGuide "Building" pages: General revisions to reflect new features and current practices.</li>
    <li>Installation: Updated instructions for SilverStream and Resin. Add installation notes for Jetty. Added RexIP to list of nominal containers.</li>
    <li>JavaDocs: New <code>@since Struts 1.1</code> tag to indicate new packages, classes, and members added after the Struts 1.0.x version</li>
    </ul>

  </section>

  <section name="Operational Changes and Bug Fixes" href="Changes">

    <p><strong>Struts Configuration Changes</strong></p>
    <p>The following changes and bug fixes have occurred in the configuration
    files related to Struts:</p>
    <ul>
    <li>Deprecated (Struts 0.5) configuration file format: Remove support.</li>
    <li>Deprecated (Struts 0.5) methods: Remove from codebase.</li>
    </ul>
    <p><strong>Added Config Package</strong></p>
    <ul>
    <li>ControllerConfig: Added inputForward property to indicate that ActionMapping.input is a forward rather than a URI.</li>
    <li>ControllerConfig: Added forwardPattern and inputPattern to help manage page directories in application modules.</li>
    <li>Added package to provide more flexibility in configuring the controller and to provide support for modular applications</li>
    </ul>
    <p><strong>Action Package Changes</strong></p>
    <p>The following changes and bug fixes have occurred in the basic
    controller framework (package <code>org.apache.struts.action</code>):</p>
    <ul>
    <li>ActionMapping: input property may now refer to an ActionForward rather than a module-relative path if inputForward is set to true on the module's ControllerConfig bean [org.apache.struts.config.ControllerConfig.</li>
    <li>ActionServlet: Added convertNull parameter to simulate the Struts 1.0 behavior when populating forms. If set to true, the numeric Java wrapper class types (like java.lang.Integer) will default to null (rather than 0).</li>
    <li>ActionServlet: Added "config/$foo" parameter and deprecated several others in favor of components in the new config package. </li>
    <li>ActionForms and related classes: now use a StringBuffer when responding a toString request in order to conserve resources.</li>
    <li>LookupDispatchAction: Added standard Action to help select between internationalized buttons.</li>
    <li>ActionForm class: Modified to use ActionServletWrapper rather than expose ActionServlet.</li>
    <li>ActionServletWrapper class: Added for use by ActionForm to prevent the Public String properties of ActionServlet from being changed via a query string.</li>
    <li>Action.MAPPING_KEY request attribute: Unconditionally pass the selected mapping as a request attribute ("org.apache.struts.action.mapping.instance") even if no form bean is specified.</li>
    <li>ActionServlet: Avoid a NullPointerException in corner cases caused by failed initialization of servlet.</li>
    <li>ActionForm class: Now truly serializable, because
        the two non-serializable instance variables (servlet and
        multipartRequestHandler) have been made transient.  However, if you
        actually do serialize and deserialize such instances, it is your
        responsibility to reset these two properties.</li>
    <li>ActionMessages and ActionErrors: The initial order a property/key is added in is now retained.</li>
    </ul>

    <p><strong>Upload Package Changes</strong></p>
    <p>The following changes and bug fixes have occurred in the file upload
    package (package <code>org.apache.struts.upload</code>):</p>
    <ul>
    <li>CommonsMultipartRequestHandler: New implementation of file upload based
        on the Jakarta Commons FileUpload package. This new implementation is
        now the default.</li>
    <li>BufferedMultipartInputStream: Fixed lost byte problem.</li>
    <li>ArrayIndexOutOfBoundsException: Fixed situations where this was known to occur.</li>
    <li>Multipart requests: Better reporting for premature closing of input streams while reading multipart requests.</li>
    <li>New line characters: Additional fix for file corruption problem with uploads and new line characters.</li>
    </ul>

    <p><strong>Utility Package Changes</strong></p>
    <p>The following changes and bug fixes have occurred in the utilities
    (package <code>org.apache.struts.util</code>):</p>
    <ul>
    <li>RequestUtils: Added support for forwardPattern, pagePattern, and inputForward properties on ControllerConfig.</li>
    <li>GenericDataSource: Deprecated and modified to act as a thin wrapper around
    [<code>org.apache.commons.dbpc.BasicDataSource</code>].
    Replaced by direct use of BasicDataSource or other compatible component.</li>
    <li>RequestUtils class: Modify to use ActionServletWrapper rather than expose ActionServlet.</li>
    <li>Added error message for the getActionErrors and getActionMessages method.</li>
    <li>getActionErrors and getActionMessages: Added methods to generate the correct corresponding
    object based on the object retrieved from request scope based on the key passed in.</li>
    <li>ActionErrors or ActionMessages: The logic for creating one of these objects has been moved
    to a utility method in RequestUtils.</li>
    <li>JspException message: Now generated in RequestUtils.</li>
    <li>ConvertUtils.convertCharacter(): Will now detect empty strings and return the default value.</li>
    </ul>

    <p><strong>Bean Taglib Package Changes</strong></p>
    <p>The following changes and bug fixes have occurred in the
    <em>struts-bean</em> custom tag library
    [<code>org.apache.struts.taglib.bean</code>]:</p>
    <ul>
    <li>&lt;html:errors&gt;: When the property tag is
    specified, errors are no longer printed if the specified property
    has no errors. Previously errors were always printed ! Future
    enhancements would include additional attributes to always turn
    off the header or footer. </li>
    <li>Made the remaining helper methods "protected" rather than
    "private".</li>
    </ul>

    <p><strong>HTML Taglib Package Changes</strong></p>
    <p>The following changes and bug fixes have occurred in the
    <em>struts-html</em> custom tag library (package
    <code>org.apache.struts.taglib.html</code>):</p>
    <ul>
    <li>FormTag: Fixed to exclude query string when identifying action mapping name.</li>
    <li>ImgTag: Correctly URLEncode the query string parameter value even if there is only a single parameter.</li>
    <li>MultiboxTag.doAfterBody(): Corrected to return SKIP_BODY instead of SKIP_PAGE.</li>
    </ul>

    <p><strong>Logic Taglib Package Changes</strong></p>
    <p>The following changes and bug fixes have occurred in the
    <em>struts-logic</em> custom tag library (package
    <code>org.apache.struts.taglib.logic</code>):</p>
    <ul>
    <li>None.</li>
    </ul>

    <p><strong>Documentation Application Changes</strong></p>
    <p>The following changes and bug fixes to the Struts Documentation
    application (and corresponding contents on the Struts web site) have
    occurred:</p>
    <ul>
    <li>Reorganized Resources into separate pages..</li>
    <li>In the Tag Developers Guide, add more detail regarding file upload requirements.</li>
    <li>In Building View Components, clarify that additional i18n support may be provided by the browser, and is outside the scope of the framework.</li>
    <li>In Building Controller Components, document 'validating' init-param, add defaults for various parameters, clarify that some web.xml settings are not Struts-specific.</li>
    <li>Tag library documentation: Moved under User's Guide.</li>
    <li>Reorganized to separate 1.0 material from nightly build material.</li>
    </ul>

    <p><strong>MailReader Example Application Changes</strong></p>
    <p>The following changes and bug fixes to the Struts MailReader Example Application
    have occurred:</p>
    <ul>
    <li>Add Russian and Japanese translations of the application resources and set the character set for the example JSP pages to "UTF-8" so that it can display either English or Japanese.</li>
    <li>Exchange "name" for "attribute" properties for Edit mappings in Struts configuration file.</li>
    <li>Remove references to saving database data from "tour" document, since this functionality was removed.</li>
    </ul>

    <p><strong>Template Example Application Changes</strong></p>
    <p>The following changes and bug fixes to the Struts Template Example
    Application have occurred:</p>
    <ul>
    <li>None.</li>
    </ul>

    <p><strong>Exercise Taglib Example Application Changes</strong></p>
    <p>The following changes and bug fixes to the Struts Exercise Taglib Example
    Application have occurred:</p>
    <ul>
    <li>Added test case for &lt;html:link> using "action" attribute. </li>
    <li>Added test case for &lt;html:select> using &lt;html:options> based on a collection
    saved in the page context.</li>
    </ul>

  </section>

  <section name="What's different?" href="diff">

    <p>This section provides links to the Struts JavaDoc for any classes that have
    been added or deprecated since the Struts 1.0 release.
    </p>

    <p><strong>Previously deprecated classes and packages removed in Struts 1.1</strong></p>
    <ul>
    <li>Removed:
      <code>org.apache.struts.utils.BeanUtils</code>,
      <code>org.apache.struts.utils.ConvertUtils</code>, and
      <code>org.apache.struts.utils.PropertyUtils</code> - replaced by
      <a href ="http://jakarta.apache.org/commons/beanutils.html"><code>org.apache.commons.beanutils</code></a>
    </li>
    <li>Removed:
     <code>org.apache.struts.util.ArrayStack</code>,
     <code>org.apache.struts.util.FastArrayList</code>,
     <code>org.apache.struts.util.FastHashMap</code>,
     <code>org.apache.struts.util.FastTreeMap</code> - replaced by
     <a href ="http://jakarta.apache.org/commons/collections.html"><code>org.apache.commons.collections</code></a>
    </li>
    <li>Removed: <code>org.apache.struts.digester.*</code> - replaced by
    <a href ="http://jakarta.apache.org/commons/digester.html"><code>org.apache.commons.digester</code></a>
    </li>
    <li>Removed: The <code>struts-config.dtd</code> - Replaced by <a href="http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><code>struts-config_1_1.dtd</code></a>.</li>
    <li>Removed: The omnibus "struts" taglib and its associated TLD - replaced by separate bean, logic, and html taglibs.</li>
    <li>Removed: The "form" taglib and its associated TLD - replaced by (renamed as) the html taglib.</li>
    </ul>

    <p><strong>Packages added in Struts 1.1</strong></p>

    <ul>
    <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/config/package-summary.html">config</a></li>
    <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/nested/package-summary.html">taglib.nested</a></li>
    <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/nested/bean/package-summary.html">taglib.nested.bean</a></li>
    <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/nested/html/package-summary.html">taglib.nested.html</a></li>
    <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/nested/logic/package-summary.html">taglib.nested.logic</a></li>
    <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/validator/package-frame.html">validator</a></li>
    </ul>

    <p><strong>Classes added in Struts 1.1</strong></p>
    <p>action</p>
    <ul>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionMessage.html"> ActionMessage</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionMessages.html"> ActionMessages</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/DynaActionForm.html"> DynaActionForm</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/DynaActionFormClass.html"> DynaActionFormClass</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ExceptionHandler.html"> ExceptionHandler</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/RequestProcessor.html"> RequestProcessor</a></li>
    </ul>
    <p>actions</p>
    <ul>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/actions/LookupDispatchAction.html"> LookupDispatchAction</a></li>
    </ul>
    <p>taglib.html</p>
    <ul>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/html/FrameTag.html"> FrameTag</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/html/JavascriptValidatorTag.html"> JavascriptValidatorTag</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/html/MessagesTag.html">MessagesTag</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/html/OptionsCollectionTag.html"> OptionsCollectionTag</a></li>
    </ul>
    <p>taglib.logic</p>
    <ul>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/logic/EmptyTag.html"> EmptyTag</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/logic/MessagesNotPresentTag.html"> MessagesNotPresentTag</a></li>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/logic/MessagesPresentTag.html"> MessagesPresentTag</a></li>
    </ul>
    <p>upload</p>
    <ul>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/upload/CommonsMultipartRequestHandler.html"> CommonsMultipartRequestHandler</a></li>
    </ul>
    <p>util</p>
    <ul>
      <li><a href="http://jakarta.apache.org/struts/api/org/apache/struts/util/LabelValueBean.html"> LabelValueBean</a></li>
    </ul>
    <p><strong>Classes with members added in Struts 1.1</strong></p>
    <p><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/Action.html">action.Action</a></p>
    <ul>
      <li>ACTION_SERVLET_KEY</li>
      <li>APPLICATION_KEY</li>
      <li>MESSAGE_KEY</li>
      <li>PLUG_INS_KEY</li>
      <li>REQUEST_PROCESSOR_KEY</li>
      <li>execute</li>
      <li>getResources(javax.servlet.http.HttpServletRequest)</li>
      <li>saveMessages</li>
    </ul>
    <p><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionServlet.html">action.A</a><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionServlet.html">ctionServlet</a></p>
    <ul>
      <li>configDigester</li>
      <li>convertHack</li>
      <li>log</li>
      <li>processor</li>
      <li>getInternal</li>
      <li>destroyApplications</li>
      <li>destroyConfigDigester</li>
      <li>getApplicationConfig</li>
      <li>getRequestProcessor</li>
      <li>initApplicationConfig</li>
      <li>initApplicationDataSources</li>
      <li>initApplicationPlugIns</li>
      <li>initApplicationMessageResources</li>
      <li>initConfigDigester</li>
      <li>methods created for backward-compatiblity only
        <ul>
          <li>defaultControllerConfig</li>
          <li>defaultFormBeansConfig</li>
          <li>defaultForwardsConfig</li>
          <li>defaultMappingsConfig</li>
          <li>defaultMessageResourcesConfig</li>
        </ul>
      </li>
    </ul>
    <p><a href="http://jakarta.apache.org/struts/api/org/apache/struts/taglib/html/BaseHandlerTag.html">taglib.html.BaseHandlerTag</a></p>
    <ul>
      <li>indexed</li>
      <li>setIndexed</li>
      <li>getIndexed</li>
    </ul>
    <p><strong>Classes deprecated between Struts 1.0 and Struts 1.1</strong></p>
    <p>action</p>
    <ul>
      <li>ActionException</li>
      <li>ActionFormBeans</li>
      <li>ActionForwards</li>
      <li>ActionMappings</li>
    </ul>
    <p><strong>Classes with members deprecated between Struts 1.0 and Struts 1.1</strong></p>
    <p><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/Action.html">action.Action</a></p>

    <ul>
      <li>FORM_BEANS_KEY</li>
      <li>FORWARDS_KEY</li>
      <li>MAPPINGS_KEY</li>
      <li>getResources()</li>
      <li>perform</li>
    </ul>
    <p><a href="http://jakarta.apache.org/struts/api/org/apache/struts/action/ActionServlet.html">ActionServlet</a></p>
    <ul>
      <li>findDataSource</li>
      <li>findFormBean</li>
      <li>findForward</li>
      <li>findMapping</li>
      <li>initDataSources</li>
      <li>methods created for backward-compatiblity only
        <ul>
          <li>defaultControllerConfig</li>
          <li>defaultFormBeansConfig</li>
          <li>defaultForwardsConfig</li>
          <li>defaultMappingsConfig</li>
          <li>defaultMessageResourcesConfig</li>
        </ul>
      </li>
    </ul>

</section>

<section>
    <p class="right">
    Next: <a href="installation.html">Installation</a>
    </p>
</section>


    </body>

</document>
