Java Reference
In-Depth Information
To use Struts 2 annotations, you need the plug-in called
struts 2-convention-plugin
. Add the
dependency to the
pom.xml
file using the fragment illustrated in Listing 4-23.
Listing 4-23. struts 2-convention-plugin
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.3.15.1</version>
</dependency>
Listing 4-24 illustrates
HelloWorldAction
configured with Struts 2 annotations.
Listing 4-24. HelloWorldAction
1.package com.apress.helloworld.action;
2.
3.import org.apache.struts2.convention.annotation.Action;
4.import org.apache.struts2.convention.annotation.Result;
5.
6.@Action(value = "/hello", results = { @Result(name = "success", location = "/hello.jsp") })
7.public class HelloWorldAction {
8.private String name;
9.
10.public String execute() throws Exception {
11.return "success";
12.}
13.
14.public String getName() {
15.return name;
16.}
17.
18.public void setName(String name) {
19.this.name = name;
20.}
21.}
Line 6
:
@Action
defines the URL of an action. Since the value of the action
annotation is
"/hello"
, the action will be invoked for the request URL
"/hello"
.
Line 6
:
@Result
defines a result for an action. The result annotation maps the
result code to the result page. Here the result code
"success"
is mapped to the
result
"/hello.jsp"
.
Listing 4-24 uses action and result annotations just to show you how to use them. You can also use
the intelligent defaults provided by the Convention plug-in. If you set the
actionPackages
filter init
parameter to a comma-separated list of packages containing action classes in
web.xml
, as illustrated
in Listing 4-25, the packages and their subpackages will be scanned. All classes in the designated
packages that implement
Action
or the POJO actions that don't implement the
Action
interface and
end with
Action
are examined.