Name |
WebWork2 Plugin |
---|---|
Publisher |
|
License |
Open Source (ASL2) |
Version |
1.0-SNAPSHOT |
Compatibility |
Struts 2.0.9+ |
Homepage |
|
Download |
Overview
This plugin is only experimental and hasn't been released yet. It is not ready to be used in production applications.
The Struts 2 WebWork plugin allows webwork actions and configuration to be used in Struts 2
Features
- Includes adapter classes and interfaces of classes including Action, and ActionSupport
- Supports
webwork.properties
,xwork.properties
andxwork.xml
- Supports JSP, Freemarker, and Velocity WebWork 2 tags
Missing Features
- Not all classes and interfaces from XWork and WebWork 2 are extended
- Tags are simple wrappers around existing Struts 2 ones
- WebWork features like the rich text editor, calendar, and continuations aren't supported
- Extra features like JasperReports and Spring integration need the proper Struts 2 plugin
Usage
Setting up Dependencies
If using Maven 2, replace the WebWork 2 dependency with this plugin, so change:
to:
For other build systems, copy this plugin, Struts 2 jars, and any required plugin jars to your application's WEB-INF/lib
directory.
Configuring Struts FilterDispatcher
The Struts FilterDispatch needs to be configured to read the webwork xwork configuration files. This can be done by adding init-params to the filter configuration:
Replace webwork taglib with struts taglib
The syntax of the struts tags are almost identical to the webwork tags. The webwork taglib can be replaced with the struts taglib. To do this, rename the struts-tags.tld from the struts core jar to webwork.tld and move this file into the WEB-INF directory of the war.
Update validators.xml
Struts requires a doctype if you have a validators.xml, add the following doctype:
Also, make sure you update the built in validators with the new validator classnames. The default validators can be found in the xwork source code at /com/opensymphony/xwork2/validator/validators/default.xml.
Update Interceptors
This plugin does not support webwork-style interceptors, so all interceptors must use Struts 2 Interceptor and ActionInvocation. Usually this only requires updating the package for these two interfaces.
Update references to ActionContext
This plugin does not support webwork-style ActionContext, so all Actions that use the Action context must be updated. Again, this is usually only requires updating the package for ActionContext.
Update references to ActionMapperFactory
Previously, an ActionMapper would be retrieved via the following code:
In Struts 2, the ActionMapper must be retreived via the internal Guice container: