请按照以下步骤详细讲解"struts2中使用注解配置Action方法的完整攻略":
1. 确认环境
首先,你需要确保你的项目已经集成了Struts2框架。同时,你需要了解Action类和方法的基本概念,并且熟悉Java注解的基础知识。
2. 创建Action类
创建一个继承ActionSupport
类的Action类,并且对于需要访问的Action方法添加相应的注解。例如:
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.*;
@Namespace("/")
@ResultPath(value = "/")
public class MyAction extends ActionSupport {
@Action(value = "hello", results = {
@Result(name = "success", location = "/success.jsp")})
public String sayHello(){
return SUCCESS;
}
}
3. 注解详解
在上面的示例中,我们使用了以下几个注解:
@Namespace:
用于指定Action类所在的命名空间。如果你不指定的话,默认使用根命名空间。
@ResultPath:
用来指定返回结果的路径。这里我们指定为根目录。
@Action:
用于指定Action的名称,同时还可以指定方法名、HTTP请求方式、结果等。例如,我们使用@Action
指定了这个Action的名称为“hello”,并且成功的结果将会保存在“/success.jsp”页面中。
@Result:
用于指定Action方法的结果名称、结果类型和结果位置。
4. 配置struts.xml
在我们确定好了Action类和方法之后,我们需要在“struts.xml”文件中进行配置,让Struts2框架能够识别我们所定义的这些Action方法。例如:
<package name="default" extends="struts-default">
<namespace>/</namespace>
<action name="hello" class="com.xxx.action.MyAction" method="sayHello">
<result name="success">/success.jsp</result>
</action>
</package>
5. 示例1
基于上面的Action定义和xml文件的配置,我们可以通过一个URL来访问这个Action方法:
http://localhost:8080/xxx/hello.action
在这个示例中,我们通过访问“http://localhost:8080/xxx/hello.action”来调用“sayHello”方法,成功的结果将会保存在“/success.jsp”页面中。
6. 示例2
另一个实际示例可以是:
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.*;
@Namespace("/")
public class LoginAction extends ActionSupport {
private String userName;
private String password;
@Action(value = "to-login", results = {
@Result(name = SUCCESS, location = "/login.jsp"),
@Result(name = INPUT, location = "/login.jsp")})
public String toLogin() {
return SUCCESS;
}
@Action(value = "do-login", results = {
@Result(name = SUCCESS, location = "/index.jsp"),
@Result(name = INPUT, location = "/login.jsp")})
public String doLogin() {
if("admin".equals(userName) && "123456".equals(password)) {
return SUCCESS;
}else {
addActionError("用户名或者密码错误,请确认后重新登录");
return INPUT;
}
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
在这个示例中,我们定义了一个“Login”Action,并且实现了两个方法:“toLogin”和“doLogin”。后者负责验证登录信息,并且根据结果返回相应页面。
同时,我们也在XML文件中对于这两个方法进行了相应的定义:
<package name="default" extends="struts-default">
<namespace>/</namespace>
<!-- 跳转至登陆界面 -->
<action name="to-login" class="com.zzxx.action.LoginAction" method="toLogin">
<result name="success">/login.jsp</result>
<result name="input">/login.jsp</result>
</action>
<!-- 登陆身份验证 -->
<action name="do-login" class="com.zzxx.action.LoginAction" method="doLogin">
<result name="success">/index.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
当我们通过URL访问“to-login”或者“do-login”方法时,Struts2框架会自动地根据定义的注解和XML配置来跳转到相应页面。
以上就是struts2中使用注解配置Action方法的详细攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2中使用注解配置Action方法详解 - Python技术站