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

时间:2023-03-08 17:19:14
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的创建方式介绍就结束了,后续内容持续更新中。。。