Struts 2 实现 Action 的几种方式包括以下几种:基于方法、基于类、基于接口、基于注解,以及自定义 Action。
基于方法
这种方式是在 Action 类中定义不同的方法来处理不同的请求,例如:
public class UserAction{
public String list(){
// 处理列表请求
return "list";
}
public String add(){
// 处理添加请求
return "add";
}
public String delete(){
// 处理删除请求
return "delete";
}
}
在 Struts 2 中,可以通过类似如下的方式进行配置:
<action name="userAction_*" class="com.example.UserAction" method="{1}">
<result name="list">/user/list.jsp</result>
<result name="add">/user/add.jsp</result>
<result name="delete">/user/delete.jsp</result>
</action>
请求的 URL 格式为:
/userAction_list.do 执行 UserAction 类的 list 方法
/userAction_add.do 执行 UserAction 类的 add 方法
/userAction_delete.do 执行 UserAction 类的 delete 方法
基于类
这种方式是在 Action 类中实现不同的接口来处理不同的请求,例如:
public class ListAction implements Action{
public String execute() throws Exception{
// 处理列表请求
return "list";
}
}
public class AddAction implements Action{
public String execute() throws Exception{
// 处理添加请求
return "add";
}
}
在 Struts 2 中,可以通过如下的方式进行配置:
<action name="list" class="com.example.ListAction">
<result name="list">/list.jsp</result>
</action>
<action name="add" class="com.example.AddAction">
<result name="add">/add.jsp</result>
</action>
请求的 URL 格式为:
/list.do 执行 ListAction 类的 execute 方法
/add.do 执行 AddAction 类的 execute 方法
基于接口
这种方式是定义一个接口来规定 Action 类必须实现的方法,例如:
public interface BaseAction{
public String execute() throws Exception;
}
public class ListAction implements BaseAction{
public String execute() throws Exception{
// 处理列表请求
return "list";
}
}
public class AddAction implements BaseAction{
public String execute() throws Exception{
// 处理添加请求
return "add";
}
}
在 Struts 2 中,可以使用如下配置:
<package name="example" namespace="/" extends="struts-default">
<action name="list" class="com.example.ListAction" implements="BaseAction">
<result name="list">/list.jsp</result>
</action>
<action name="add" class="com.example.AddAction" implements="BaseAction">
<result name="add">/add.jsp</result>
</action>
</package>
请求的 URL 格式为:
/list.do 执行 ListAction 类的 execute 方法
/add.do 执行 AddAction 类的 execute 方法
基于注解
这种方式是使用 Struts 2 的注解来标记方法实现不同的请求,例如:
@Namespace("/")
@Action(value="list",results={@Result(name="list",location="/list.jsp")})
public class ListAction extends ActionSupport{
public String execute() throws Exception{
// 处理列表请求
return "list";
}
}
在 Struts 2 中,可以使用如下配置:
<package name="example" namespace="/" extends="struts-default">
<action name="list" class="com.example.ListAction">
<result name="list">/list.jsp</result>
</action>
</package>
请求的 URL 格式为:
/list.do 执行 ListAction 类的 execute 方法
自定义 Action
自定义 Action 方式是定义自己的 Action 类,实现特定的逻辑,例如:
public class MyAction extends ActionSupport implements ServletRequestAware{
private HttpServletRequest request;
public void setServletRequest(HttpServletRequest request){
this.request=request;
}
public String execute() throws Exception{
// 处理请求
return SUCCESS;
}
}
在 Struts 2 中,可以使用如下配置:
<package name="example" namespace="/" extends="struts-default">
<action name="myAction" class="com.example.MyAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
请求的 URL 格式为:
/myAction.do 执行 MyAction 类的 execute 方法
以上就是 Struts 2 实现 Action 的几种方式的详细介绍,希望对您有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts 2 实现Action的几种方式 - Python技术站