Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Name

Struts 1 Plugin

Author

N/A

Homepage

N/A

Version

N/A

Compatibility

Bundled with Struts

Publisher

Apache Software Foundation

State

Unstable

License

Open Source (ASL2)

Download

N/A

Overview

Excerpt

The Struts 1 plugin allows you to use existing Struts 1 Actions and ActionForms in Struts 2 applications.

This plugin provides a generic Struts 2 Action class to wrap an existing Struts 1 Action, org.apache.struts2.s1.Struts1Action. The wrapper class provides the expected calls to the legacy Struts 1 Action and ActionForm, converting incoming and outgoing objects into the expected forms. It works by using the scoped model driven technique that uses a single Object as the model for every page, very similar to how the Struts 1 ActionForm works. The plugin also provides several interceptors to emulate Struts 1 logic:

  • org.apache.struts2.s1.ActionFormValidatorInterceptor - Integrates the validation of ActionForms into the workflow of Struts 2
  • org.apache.struts2.s1.ActionFormResetInterceptor - Calls the reset() method on any discovered ActionForms

Features

  • Can use Struts 1 Actions and ActionForms with no code changes
  • Supports Commons Validator-enabled ActionForms

Usage

To use existing Struts 1 Actions and ActionForms in a Struts 2 application, create a normal Struts 2 configuration package in struts.xml, but have it extend struts1-default. The struts1-default package contains several interceptors and a default interceptor stack that work the plugin into the Struts 2 request process.

In the most simple case, where you have a Struts 1 Action that you want to use in Struts 2, configure a Struts 2 action using the wrapper:

Code Block
langxml
titleSimple Struts 1 configuration

<action name="myAction" class="org.apache.struts2.s1.Struts1Action">
  <param name="className">com.mycompany.myapp.MyAction</param>
  <result>myAction.jsp</result>
</action>

Most likely, you will have an ActionForm that your Struts 1 Action expects. To use an ActionForm, the setup is a little more complicated because you'll need an interceptor that manages the creation and scope (to support request and session scoping like Struts 1) of the ActionForm.

Code Block
langxml
titleStruts 1 Action with a session-scoped ActionForm

<action name="myFormAction" class="org.apache.struts2.s1.Struts1Action">
  <param name="className">com.mycompany.myapp.MyAction</param>
  <interceptor name="myForm" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
    <param name="className">com.mycompany.myapp.MyForm</param>
    <param name="name">gangsterForm</param>
    <param name="scope">session</param>
  </interceptor>
  <interceptor-ref name="struts1-default" />
  <result>myAction.jsp</result>
</action>

Example

...

Wiki Markup
{

...

rate:

...

title=Rating|theme=dynamic}

The Struts 1 plugin

Excerpt

allows you to use existing Struts 1 Actions and ActionForms in Struts 2 applications

Settings

This plugin doesn't support any global settings.

Installation

This plugin can be installed by copying the plugin jar into your application's /WEB-INF/lib directory. It will need the Struts 1 jar in order to function correctly.