首页 > 代码库 > 3.Struts2中Action类的三种写法

3.Struts2中Action类的三种写法

一.普通的POJO类(没有继承没有实现)

public class DemoAction1 {
    
    public String execute(){
        
        System.out.println("DemoAction1是普通的POJO类...");
        
        return null;
    }
}
        <!-- 普通的POJO类 -->
        <action name="action1" class="com.struts2.web.action2.DemoAction1"/>

技术分享

技术分享

  基本不使用

 

二.实现Action接口

import com.opensymphony.xwork2.Action;

/**
 * action类的编写2:实现action接口
 * @author NEWHOM
 *
 */
public class DemoAction2 implements Action {

    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        
        System.out.println("DemoAction2是一个实现了Action接口的类...");
        
        return null;
    }

}
        <!-- 实现了Action接口 -->
        <action name="action2" class="com.struts2.web.action2.DemoAction2" />

技术分享

技术分享

* Action接口中定义了5个常量,5个常量的值对应的是5个逻辑视图跳转页面(跳转的页面还是需要自己来配置),还定义了一个方法,execute方法。
* 5个逻辑视图的常量
            * SUCCESS       -- 成功.
            * INPUT         -- 用于数据表单校验.如果校验失败,跳转INPUT视图.
            * LOGIN         -- 登录.
            * ERROR         -- 错误.
            * NONE          -- 页面不转向.

  基本不使用

 

三.继承ActionSupport类

import com.opensymphony.xwork2.ActionSupport;

/**
 * action编写3:继承ActionSupport类
 * @author NEWHOM
 *
 */
public class DemoAction3 extends ActionSupport {

    private static final long serialVersionUID = 1L;
    
    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        
        System.out.println("DemoAction3是一个继承了ActionSupport的类...");
        
        return null;
    }
    
}
        <!-- 继承了ActionSupport类 -->
        <action name="action3" class="com.struts2.web.action2.DemoAction3"/>

技术分享

技术分享

  ActionSupport本身继承了许多的类,利于编写代码

技术分享

  开发中经常使用这种方式

3.Struts2中Action类的三种写法