实现Action的几种方法
1. implements Action
2. extends ActionSupport
3. 也可以不继承任何父类不实现任何借口

#当一个类有多个方法

package com.struts.test;
import com.opensymphony.xwork2.ActionSupport;
public class Test extends ActionSupport {
private static final long serialVersionUID = 1L; @Override
public String execute() throws Exception {
System.out.println("execute");
return SUCCESS;
} public String add() throws Exception {
System.out.print("add");
return "add";
} public String update() throws Exception {
System.out.print("update");
return "update";
} public String delete() throws Exception {
System.out.print("delete");
return "delete";
}
}

如上方法,里面有add()、update()、delete();
这么多方法该如何配置?
1. 配置多个action

<package name="struts_two" extends="struts-default">

    <!-- 执行Test类中的update方法 -->
<action name="test_one_struts" class="com.struts.test.Test" method="update">
<!-- 返回跳转到Test_update.jsp页面 -->
<result name="update">/Test_update.jsp</result>
</action> <!-- 执行Test类中的delete方法 -->
<action name="test_one_struts" class="com.struts.test.Test" method="delete">
<!-- 返回跳转到Test_delete.jsp页面 -->
<result name="delete">/Test_delete.jsp</result>
</action> <!-- 执行Test类中的add方法 -->
<action name="test_one_struts" class="com.struts.test.Test" method="add">
<!-- 返回跳转到Test_add.jsp页面 -->
<result name="add">/Test_add.jsp</result>
</action>
</package>

2.动态配置(不推荐)

<!--#2.5版本需要打开动态配置
<constant value="true" name="struts.enable.DynamicMethodInvocation"/>
-->
<package>
<action name="test_one_struts" class="com.struts.test.Test">
<result name="update">/Test_update.jsp</result>
<result name="delete">/Test_delete.jsp</result>
<result name="add">/Test_add.jsp</result>
</action>
</package>

3.通配符配置(推荐)

<package>
<!--
* 通配符
根据你输入的路径来判断你是执行什么方法
比如:你输入 Test_delete,那么就会执行Test_类的delete方法,并且跳转到对应的页面
-->
<action name="Test_*" class="com.struts.test.Test" method="{1}">
<result name="{1}">/Test_{1}.jsp</result>
<!-- 2.5版本及以上必须配置<allowed-methods>标签,允许的方法 -->
<allowed-methods>add,delete,update,select</allowed-methods>
</action>
</package>
05-11 22:06