Struts 2 使用method属性

在配置action时,我们可以通过action元素的method属性来指定action调用的方法,所指定的方法,必须遵循与execute方法相同的格式。

在Struts2.xml文件中,我们可以为同一个action类配置不同的别名,并使用 method 属性。

在Struts.xml文件中为同一个Action类配置不同的别名

<!-- 使用method属性 --> <package name="methods" namespace="/" extends="struts-default"> <!-- 对应着MethodAction里面的execute方法 --> <action name="list" class="org.lesson05.MethodAction"> <result name="success">/Methods/list.jsp</result> </action> <!-- 对应着MethodAction里面的add方法 --> <action name="add" class="org.lesson05.MethodAction" method="add"> <result name="success">/Methods/add.jsp</result> </action> <!-- 对应着MethodAction里面的edit方法 --> <action name="edit" class="org.lesson05.MethodAction" method="edit"> <result name="success">/Methods/edit.jsp</result> </action> <!-- 对应着MethodAction里面的delete方法 --> <action name="delete" class="org.lesson05.MethodAction" method="delete"> <result name="success">/Methods/delete.jsp</result> </action> </package>

对应的MethodAction类,代码如下:

[code] importcom.opensymphony.xwork2.ActionSupport;
public class MethodAction extends ActionSupport
{

@Override
public String execute() throws Exception
{
   return SUCCESS;
}

public String add() throws Exception
{
   return SUCCESS;
}

public String edit() throws Exception
{
   return SUCCESS;
}

public String delete() throws Exception
{
   return SUCCESS;
}

}[/code]

使用action的method属性可以任意指定处理请求的方法(只要该方法和execute 方法具有相同的格式),这样就可以在同一个类中完成相关的任务,而不需要去编写不同的Action类。

注意:Struts2在根据action元素的method属性查找方法时有两种途径:

1.查找与method属性值完全一致的方法.

2.查找doMethod()形式的方法.