Home > Guides > Migration Guide > Release Notes 2.0.0 |
Struts 2.0.0 is the first distribution of WebWork 2 as an Apache Struts product.
Maven Artifact ID
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.0.0</version> </dependency>
Struts Configuration XML
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="struts-default.xml"/> <package name="support" extends="struts-default"> <action name="$name" class="$class"> <result>$location</result> </action> </package> </struts>
XWork Validation XML
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="$name"> <field-validator type="$type"> <message>$message</message> </field-validator> </field> </validators>
struts.xml
file can be placed in a JAR and automatically plugged into an application, so that modules can be self-contained and automatically configured.
Depending on whether you are coming from a Struts 1 or a WebWork 2 background, your perspective on the key changes will differ.
For other changes from WebWork 2, see the "Members to rename", "New property settings", "New features or feature changes", and "Removed or deprecated".
WebWork 2 | Struts 2 |
---|---|
| |
| |
| |
| |
DispatcherUtil | Dispatcher |
com.opensymphony.webwork.config.Configuration | org.apache.struts2.config.Settings |
The tag prefix conventions in the example applications have changed.
JSP | s: | <s:form ...> |
---|---|---|
Freemarker | s. | <@s.form ...> |
Velocity | s | #sform ( ... ) |
struts.enable.DynamicMethodInvocation | Enable support for the hardwired |
---|
It is recommended that all applications specify the DynamicMethodInvocation setting for now, since the default may change. The recommended approach to action aliasing is to use wildcard aliases instead of the hardwired bang.
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()
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()
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. |
---|---|
| 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" /> |
| The convention of trying a "do" form of an action method is not supported. <action name="..." method="submit"> ... </action> In WebWork,
|
| Calling the "default" method via "doDefault" is not supported. |