You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 37 Next »

Struts 2.0.0 is the first distribution of WebWork 2 as an Apache Struts product.

The current snapshot is graded "test build" quality. It is "ready enough" for early development – but there are gaps in the documentation, and early testing will undoubtedly expose other oversights.

For your convenience, a one-stop all distribution is available. Individaul elements of the distribution may also be downloaded separately.

all

The entire distribution, including all the elements. (36mb)

apps

The example applications, as ready-to-deploy WARs. (27mb)

blank

Just the blank application, ready to deploy as a template for new development. (Also included in apps.) (4mb)

docs

The documentation, as provided on the website (currently only the welcome page Javadocs, not the wiki pages). (6mb)

lib

The essential dependencies, including the Struts 2 JARs. (3mb)

src

The source code for the framework, ready to build as a Maven project. (18mb)

sj4

The Java 1.4 versions of the Struts and XWork JARs (prepared using RetoTranslator). (1mb)

  • If you are a Maven developer, 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.

Key Snippets

Maven Artifact ID

<dependency>
  <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
      <version>2.0.0-SNAPSHOT</version>
</dependency>

Struts Configuration DTD

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

Key Changes

Depending on whether you are coming from a WebWork 2 or Struts 1 background, your perspective on the key changes will differ.

From WebWork 2

  • Struts 2 is dependant on XWork 2 (nightly build).
  • Java 1.5 is required to build and deploy Struts 2.
    • For Java 1.4 deployments, RetroWeaver or RetroTranslater may be used to provide Java 1.4 support
    • A pre-packaged set of RetroTranslator JARs are being provided with the distribution.

For other changes from WebWork 2, see the "Members to rename", "New property settings", "New members or feature changes", and "Removed or deprecated".

Members to rename

WebWork 2

Struts 2

com.opensymphony.webwork.*

org.apache.struts2.*

xwork.xml

struts.xml

webwork.properties

struts.properties

DispatcherUtil

Dispatcher

com.opensymphony.webwork.config.Configuration

org.apache.struts2.config.Settings

The tag prefix conventions in the example applications have changed.

JSP

s:

Freemarker

s.

Velocity

s-

For Velocity, the hyphen is part of the token.

New property settings

struts.compatibilityMode.WebWork

Enable support for the action!alias syntax

This setting will be removed in a future release!

New members or feature changes

  • Datepicker tag is now using dojo's (limited in terms functionality and internationalization)
  • Various changes to ConfigurationManager
    • ConfigurationManager is no longer a static factory. It is now an instance created through Dispatcher. Custom configuration could be done through DispatcherListener.
    • Custom configuration to ConfigurationManager and Configuration cannot be done statically anymore, instead use Dispatcher's DispatcherListener to achieve the same effect.
  • The prepare interceptor now uses reflection to call prepare_Method_ where method is the action method configured for the particular action in struts.xml.
       <action name="myAction" method="insert" ....>
         .....
       </action>
    
       // with the above configuration, and PrepareInterceptor in play, 
       // callsequence will be 
       1] prepareInsert() (If it exists)
       2] prepare() (Unless Interceptor's alwaysInvokePrepare parameter is set to false)
       3] insert()
    
  • DefaultWorkflowInterceptor (named workflow in struts-default.xml) now uses reflection to call validateMethod on the action class that implements Validateable interface where method is the action method configured for the particular action in struts.xml.
    <action name="myAction" method="insert" ...>
           ...
        </action>
    
        // with the above configuration, and DefaultWorkflowInterceptor in play, 
        // call sequence for action that implements Validateable interface will be 
        1] validateInsert()
        2] validate() (unless Interceptor's alwaysInvokeValidate parameter is set to false)
        3] insert()
    

Removed or deprecated

action!alias

The "action!alias" syntax is deprecated. The idiom is disabled by default, but it can be enabled via the struts.compatibilityMode.WebWork property setting. This setting will be removed in a future release.

AroundInterceptor

The AroundInterceptor has been removed. If your application extends the AroundInterceptor, either import the class into your source code form WebWork 2 (pursuant to the Open Symphony License) and modify it to server as your own base class, or rewrite your interceptor.

oldSyntax

Support for the "oldSyntax" is removed.

Rich text editor tag

Rich text editor tag has been removed (a possible replacement would be to use the textarea tag with theme="ajax", this will used dojo's rich text editor)

 <s:textarea theme="ajax" /> 

doActionMethod

The convention of trying a "do" form of an action method is not supported.

  <action name="..." method="submit">
    ...
  </action>

In WebWork,

  • try to execute submit method in the action, fail
  • try to execute doSubmit method in the action if Step 1, fail
  • fail
    In Struts,
  • try to execute submit method in the action, fail
  • fail

From Struts 1

Detail

Pending and open issues

type key summary status resolution

Unable to locate Jira server for this macro. It may be due to Application Link configuration.

Other resources

  • No labels