Struts2之命名空间与Action的三种创建方式

  看到上面的标题,相信大家已经知道我们接下来要探讨的知识了,一共两点:1、package命名空间设置;2、三种Action的创建方式。下面我们开始本篇的内容:

  首先我们聊一聊命名空间的知识,namespace决定了action的访问路径,默认为"",可以接受所有路径的action,namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action,/xxx/index.action,或者/xxx/yyy/index.action,namespace最好也用模块来进行命名。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.devMode" value="true" />
    
    <package name="default" namespace="/" extends="struts-default">
        <action name="user" class="com.edu.action.User" method="login">
            <result>/success.jsp</result>
        </action>
    </package>
    
    <!-- Add packages here -->
    
    <package name="hello" namespace="/hello" extends="struts-default">
        <action name="login" class="com.edu.action.Hell" method="login">
            <result>/hello.jsp</result>
        </action>
    </package>

</struts>

  做过开发的朋友一定都知道package包的作用,这里的name使用了唯一标示package的名称,namespace则就是本篇我们要一起探讨内容,决定了我们访问的路径。以上两个action的访问路径分别为:http://localhost:8080/Struts/user与http://localhost:8080/Struts/hello/login


  下面我们一起来探讨一下action的三种创建方式:分别为一般Class类、实现Action接口、继承ActionSupport类,下面我们一起来探讨一下。

  第一种方式:

public class User1 {
    
    public String execute(){
        System.out.println("Action1");
        return "success";
    }
}

  第二种方式:

public class User2 implements Action {

    public String execute() throws Exception {
        System.out.println("Action2");
        return "success";
    }
    
}

  第三种方式:

public class User3 extends ActionSupport {
    @Override
    public String execute() throws Exception {
        System.out.println("Action3");
        return SUCCESS;
    }
}

  关于Struts的1、package命名空间设置;2、三种Action的创建方式介绍就结束了,后续内容持续更新中。。。

原文地址:https://www.cnblogs.com/AndroidJotting/p/6492149.html