mirror of
https://github.com/apache/struts.git
synced 2026-09-11 00:29:40 +00:00
1ee0ae0299
* Bump org.apache.rat:apache-rat-plugin from 0.16.1 to 0.17 Bumps org.apache.rat:apache-rat-plugin from 0.16.1 to 0.17. --- updated-dependencies: - dependency-name: org.apache.rat:apache-rat-plugin dependency-version: '0.17' dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Updates exclusions * Removes includes to include all the files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Lukasz Lenart <lukaszlenart@apache.org>
51 lines
2.7 KiB
Markdown
51 lines
2.7 KiB
Markdown
# Struts 2 Convention plugin
|
|
This plugin allows to use _convention over configuration_ approach instead of configuring everything using `struts.xml`.
|
|
You will find more details in [documentation](https://struts.apache.org/plugins/convention/).
|
|
|
|
## Installation
|
|
Just drop this plugin JAR into `WEB-INF/lib` folder or add it as a Maven dependency.
|
|
|
|
## 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.
|