Action是Strut2的核心内容,相当于Servlet,用于处理业务。

Action是一个Java类,直接新建Java类即可。

Action有3种实现方式。

1、使用POJO,设置成员变量,写对应的setter、getter方法,再写一个返回值是String的方法来处理业务逻辑,并把<action>的method属性值设置为此方法。

POJO:普通的、传统的Java对象(类),不实现任何接口,不继承任何类。

此种方式创建的Action不与其他类、接口耦合,是低侵入式的。

但此种方式并不常用,因为要从头开始写,自己敲public String xxx(){     },还要在struts.xml中指定要调用的方法,太麻烦了。

2、实现Action接口

import com.opensymphony.xwork2.Action;

public class XxxAction implements Action {
@Override
public String execute() throws Exception {
return null;
}
}

默认会调用execute()方法来处理请求,不必在structs.xml中配置所调用的方法。

Action接口内置了一些常用的字符串常量,我们可以直接使用:

 String SUCCESS = "success";
String NONE = "none";
String ERROR = "error";
String INPUT = "input";
String LOGIN = "login";

注意是 com.opensymphony.xwork2.Action,导包时不要导错了。

3、继承ActionSupport类

public class XxxAction extends ActionSupport {
@Override
public String execute() throws Exception {
return null;
}
}

ActionSupport类实现了Action接口,具有Action接口的所有功能,且实现了Serializable等其它接口,功能更加强大。

一般使用第三种方式。

在structs-default.xml提供的默认的包配置中:

        <default-class-ref class="com.opensymphony.xwork2.ActionSupport" />

        <global-allowed-methods>execute,input,back,cancel,browse,save,delete,list,index</global-allowed-methods>

默认会预先实例化ActionSupport,且execute是默认调用的方法之一。

Struts2 Action的3种创建方式的更多相关文章

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

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

  2. Action的三种编写方式

    -------------------siwuxie095 Action 的三种编写方式 在 Struts2 的应用开发中,Action 作为框架的核心类,实现 对用户请求的处理,Action 类被称 ...

  3. Action的三种实现方式,struts.xml配置的详细解释及其简单执行过程(二)

    勿以恶小而为之,勿以善小而不为--------------------------刘备 劝诸君,多行善事积福报,莫作恶 上一章简单介绍了Struts2的'两个蝴蝶飞,你好' (一),如果没有看过,请观 ...

  4. Django-多对多关系的三种创建方式-forms组件使用-cookie与session-08

    目录 表模型类多对多关系的三种创建方式 django forms 组件 登录功能手写推理过程 整段代码可以放过来 forms 组件使用 forms 后端定义规则并校验结果 forms 前端渲染标签组件 ...

  5. Django框架(十)--ORM多对多关联关系三种创建方式、form组件

    多对多的三种创建方式 1.全自动(就是平常我们创建表多对多关系的方式) class Book(models.Model): title = models.CharField(max_length=32 ...

  6. 多对多三种创建方式、forms组件、cookies与session

    多对多三种创建方式.forms组件.cookies与session 一.多对多三种创建方式 1.全自动 # 优势:不需要你手动创建第三张表 # 不足:由于第三张表不是你手动创建的,也就意味着第三张表字 ...

  7. 多对多的三种创建方式-forms相关组件-钩子函数-cookie与session

    多对多的三种创建方式 1.全自动(推荐使用的**) 优势:第三张可以任意的扩展字段 缺点:ORM查询不方便,如果后续字段增加更改时不便添加修改 manyToManyField创建的第三张表属于虚拟的, ...

  8. 面向面试编程——javascript对象的几种创建方式

    javascript对象的几种创建方式 总共有以下几个模式: 1.工厂模式 2.构造函数模式 3.原型模式 4.混合构造函数和原型模式 5.动态原型模式 6.寄生构造函数模式 7.稳妥构造函数模式 1 ...

  9. 【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

随机推荐

  1. RAID 独立磁盘冗余阵列 - redundant array of independent disks

    RAID:  RAID全称是独立磁盘冗余阵列(Redundant Array of Independent Disks),基本思想是把多个磁盘组合起来,组合一个磁盘阵列组,使得性能大幅提高. RAID ...

  2. linux--top工具分析

    top分析工具详解 第一行:10:01:23 当前系统时间126 days, 14:29 系统已经运行了126天14小时29分钟(在这期间没有重启过)2 users 当前有2个用户登录系统   loa ...

  3. MySQL MGR 集群从数据库显示RECOVRING

    因为断电 或者 其他瞎折腾 导致: 从节点显示RECOVRING 查看错误日志显示: Slave SQL for channel 'group_replication_recovery': Error ...

  4. 8.gitlab 邮件设置

    这个我没做实验.  视屏里面说的 126的 邮箱限制少点. 建议用126的 邮箱. 参考视屏  jenkins+gitlab+插件\1\7(07-gitlab备份恢复)   最后的一点部分. 需要在配 ...

  5. pyquery解析库

    这一篇整理一下pyquery这个解析库.还是菜,若有错误的地方,欢迎大家随时指正.......(come on.......) pyquery:是一个css选择器,再使用时,也需要传入HTML文本来初 ...

  6. Loadrunner|录制脚本时出现乱码的解决方式

    1.进入options 2. 保存后,再录制到脚本就不会有乱码了!

  7. 第02组Beta版本演示

    组长博客 组名:十一个憨比 本组组员: 学号 姓名 分工 贡献比例 181700413 黄智 写Beta冲刺的四次博客,写评审表,写word,统筹规划 9% 131700309 林闽沪 代码实现,答辩 ...

  8. 金山云笔试题:AKM函数

    1. 题目描述 /** 阿克曼(Ackmann)函数 [题目描述] 阿克曼(Ackmann)函数A(m,n)中,m,n定义域是非负整数(m<=3,n<=10),函数值定义为: akm(m, ...

  9. 一、Spring注解之@ComponentScan

    Spring注解之@ComponentScan [1]@ComponentScan注解是什么 @ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bea ...

  10. Shell基本运算符之算术、关系运算符

    Shell 运算符 =============================摘自菜鸟教程================================= Shell和其他编程语言一样,支持多种运算 ...