mirror of
https://github.com/apache/struts.git
synced 2026-08-05 14:47:09 +00:00
352fdb5300
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@727418 13f79535-47bb-0310-9956-ffa450edef68
40 lines
2.4 KiB
Plaintext
40 lines
2.4 KiB
Plaintext
Design
|
|
|
|
Action with no annotations (all the default handlings)
|
|
--------------------------
|
|
|
|
Action name is class name.
|
|
Action package is based on the either any Namespace annotations on the class or Java package the
|
|
action class is defined in or the Java package name and the root Java package, which is determined
|
|
based on the package locators or the action package list. In either case, a root package is
|
|
identified and the namespace is the packages below the root up to and including the package that
|
|
contains the action class.
|
|
Action method is execute in all cases.
|
|
Results are built first from the Result annotations at the class level. Next, they are built from
|
|
the resources available in the web application and in the classpath based on the result location,
|
|
namespace of the action and action name (not anything to do with the code element names). Results
|
|
are found for common result codes including, success, error, input, failure, etc. If a specific
|
|
result doesn't exist using the result code then just the action namespace and action name are used to
|
|
locate results. If there are still no results found, than a redirect is added back to the index
|
|
action for the namespace, if one exists.
|
|
|
|
Action with Action(s) annotations
|
|
---------------------------------
|
|
|
|
If the annotation is located on any method other than execute, than the action configuration built
|
|
from the annotation is in addition to the action configuration built using the default. Unless there
|
|
is an annotation that contains no value, in which case, the method that annotation is defined for
|
|
becomes the default action method. If the annotation is defined on the execute method, regardless of
|
|
the value of the annotation, no default configuration is built for the class.
|
|
If multiple annotations have no value, an error should occur.
|
|
If multiple annotations have the same value, an error should occur.
|
|
|
|
Action name is taken from the annotation value. If the value is empty, the default action name
|
|
is used.
|
|
Action package is taken from the annotation value. If the annotation value doesn't start with a slash
|
|
character, the default action namespace is used.
|
|
Action method is always the method that the annotation is defined on.
|
|
Results are built first from the array of Results on the Action annotation. Next, they are built
|
|
from the class level Result annotations. Lastly, all default results are created. All Results already
|
|
created during this process should not be overridden later in the process.
|