首页 > 代码库 > JavaEE笔记(六)

JavaEE笔记(六)

实现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="http://www.mamicode.com/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>
    </action>
</package>

JavaEE笔记(六)