Struts2-Action-3-系列问题(作用、namespace、定义自己的action)

本文介绍Struts2框架中的Action概念,包括如何通过命名空间(namespace)来组织Action,以及三种定义Action的方法:普通Java类、实现Action接口、继承ActionSupport。
  1. Action入门:
    Struts作用: 把请求和视图分开
  2. Namespace
    namespace决定了action的访问路径,默认为“”,表示可以接收所有路径的action
    namespace可以写为/,或者/xx,或者/xx/yy,对应的action访问路径为/index.action,/xx/index.action,/xx/yy/index.action
    namespace最好也用模块来进行命名

    <!--namespace和package(如果action的name相同,则可以用package来区分,与java中的包含义相似)一般用模块来命名-->
    <--http://localhost:8080/hello/front/a/b/index.action-->
    <package name="front" namespace="/front" extends="struts-default">
        <action name="index">
            <result>/front.jsp</result>
        </action>
    </package>
    
    <!--namespace不写  相当于namespace=""   只要访问路径包括index.action则都访问-->
    <--http://localhost:8080/hello/a/b/cc/ddd/index.action-->
    <package name="main"  extends="struts-default">
        <action name="index">
            <result>/main.jsp</result>
        </action>
    </package>
  3. 定义自己的Action
    1.具体视图的返回可以由用户自己定义的Action来决定
    2.具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
    3.具体Action的实现(3种)可以是一个普通的java类,里面有public String execute方法即可;或者实现Action接口;但最常用的是ActionSupport继承,好处是可以直接使用Struts2封装好的方法
    4.stuts1和struts2一个很重要的区别是,struts1每次访问时,都是同一个对象,可能会产生同步访问的问题;而struts2每次访问时,都是new一个新的对象,无此问题。
<!--struts.xml中-->
 <package name="myAction" namespace="/myAction" extends="struts-default">
        <action name="myaction" class="com.IndexAction3">
            <result>/front.jsp</result>
        </action>
    </package>
// action中
//方法1
public class IndexAction1 {
    public String execute(){
        System.out.println("indexAction1");
        return "success";
    }
}
//方法2
public class IndexAction2 implements Action{
    public String execute() throws Exception {
        System.out.println("indexAction2");
        return SUCCESS;
    }
}
//方法3  只记住这种
import com.opensymphony.xwork2.ActionSupport;
public class IndexAction3 extends ActionSupport{
    @Override
    public String execute() throws Exception {
        System.out.println("IndexAction3");
        return "success";
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值