Apache Struts 2 Documentation > 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>
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 |
---|---|
com.opensymphony.xwork.* | com.opensymphony.xwork2.* |
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: | <s:form ...> |
---|---|---|
Freemarker | s. | <@s.form ...> |
Velocity | s | #sform ( ... ) |
struts.enable.DynamicMethodInvocation | Enable support for the hardwired action!alias syntax (Default is TRUE) |
---|
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. |
<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()
<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. |
---|---|
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>
|
default method | Calling the "default" method via "doDefault" is not supported. |