THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- If you are a Maven user, 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.
...
Code Block |
---|
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.0.0-SNAPSHOT<0</version> </dependency> |
Struts Configuration XML
Code Block |
---|
<?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
...
New Features and Extensions
- Can we use Acegi Security with the framework extension is available.
- CheckBox Interceptor detects unchecked checkboxes and adds a parameter with a default value (usually 'false') .
- JavaServer Faces extension is available.
- A
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.- In the case of Freemarker and Velocity modules, the templates can also be loaded from the classpath, so the entire module can be plugged in as a single JAR.
- Debug Interceptor DebuggingInterceptor displays the value stack at runtime.
...
- 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 instruts.xml
.Code Block <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
instruts-default.xml
) now uses reflection to callvalidateMethod
on the action class that implements Validateable interface wheremethod
is the action method configured for the particular action instruts.xml
.Code Block <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()
- Datepicker tag is now using dojo's (limited in terms functionality and internationalization)
- Tiles integration extension is available.
- Wildcards can be specified in action mappings.
- MessageStoreInterceptor is introduced to allow field errors / action errors and messages to be store and retrieve through session, resulting them to be preservable across request.
...
Pending and open issues
Jira Issues | |||||||
---|---|---|---|---|---|---|---|
|