Home > Guides > Migration Guide > Release Notes 2.0.2

(tick) These are the notes for the Struts 2.0.2 distribution.

(tick) For prior notes in this release series, see Release Notes 2.0.1

  • If you are a Maven user, you might want to get started using the Maven Archetype.
  • Another quick-start entry point is the blank application. Rename and deploy the WAR as a starting point for your own development.
Maven Dependency
<dependency>
  <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
      <version>2.0.2</version>
</dependency>
Snapshot Repository
<repositories>
  <repository>
    <id>apache.snapshots</id>
    <name>ASF Maven 2 Snapshot</name>
    <url>http://people.apache.org/repo/m2-snapshot-repository</url>
  </repository>
</repositories>

Backward compatibility issues with prior development release

  • Quickstart is removed in favor of the Maven Jetty plugin (WW-1524).
  • As of Struts 2.0.2, Spring is a plugin (WW-1499). If an application specifies the Spring object factory in struts.properties, also include the struts2-spring-plugin.jar on the application's classpath. The plugin uses Spring 2.0.2 by default but can be rebuild to use another recent version.
    • Ideally, move the object factory setting to the XML configuration, using Constant Configuration].
  • The Ajax theme is updated to Dojo 0.4, and some tag attributes have changed. See Ajax Tags for details.

New Features and Plugins

  • Plugins are now documented in the Apache Struts 2 Plugin Registry.
  • Annotations: @Result annotation now supports parameters (WW-1575).
  • Ajax Tags: The Autocompleter AJAX tag wraps Dojo's ComboBox and supports remote, static, and JSON content.
  • Spring Plugin: Integrate Spring with your application using a plugin (WW-1499). Or, if you prefer, use the Plexus Plugin instead.
  • File Uploading Explore multiple file uploading through our new Showcase example (WW-1479).
  • Action tag: Eliminate unwanted exceptions with the new flush attribute (WW-1472).
  • Checkboxlist tag: Use Maps with CheckboxList (WW-1471).
  • Roles Interceptor: Integrate JAAS with a new interceptor - now on the default stack (WW-1469).
  • Localized Links: Use the new key attribute to streamline link markup (WW-1458).
  • Constant Configuration: Override factory default settings from any XML configurtion document, including web.xml! (WW-1421).
  • Action Class Ref: Configure a custom default Action for any package to use instead of ActionSupport (WW-1420).
  • Struts Maven Archetypes The standard archetype includes sample code from the Bootstrap tutorial {WW-1412).
  • Direct Results: Create a custom Result Type directly from an Action class (WW-1393).

Experimental Features and Plugins

(tick) Please help us test these brave new features. Feedback appreciated!

  • Scope Plugin: Initial version of scope plugin that mimics JBoss Seam-style of scoped bijection (presently in the Sandbox).
  • Codebehind Plugin: Reduce mundane configuration by using "page controller" conventions (WW-1515).
  • Zero Configuration: Optionally, eliminate or reduce XML configuration with convention and annotation (WW-1491).
  • REST-ful URLs: Use search-engine friendly URLs, like category/action/movie/Thrillers (WW-1754).

Internal Changes

  • Plugin tag libraries: Plugins can now provide new tag libraries encompassing JSP, Freemarker, and Velocity tags (WW-1584).
  • Dependency Injection: The framework now uses its own dependency injection container, based on Google Guice. Applications are free to use Spring, Plexus, or even a local copy of Guice for any dependency injection needs. Actions can still be instantiated via the Spring configuration, when desired (WW-1499), but Spring is entirely optional now.
  • Precise Error Reporting: All configuration elements, including properties that come from Java properties files, include location and line information for easier debugging (WW-1510).
  • Ajax Tags: The tags comprising the Ajax theme have been revamped, enhanced, and updated to Dojo 0.4 (WW-1484, WW-1485, WW-1554, WW-1529, WW-1555, WW-1579, ).
  • Composite Action Mapper: Multiple Action Mappers can now be chained into a composite
  • Bean Configuration - Application objects can be injected into the framework or have static values set.

Detail

Pending and open issues

Other resources