【Pojo方式】

1.概述

Pojo(Plain Ordinary Java Object)称为简单Java类,其实就是一个JavaBean.

2.示例

 /**
* Pojo类方式实现Action
*
* 优点:
* 没有继承或实现任何类或接口,类不具有侵入性。便于代码的测试和迁移。
* 缺点:
* 没有约束,容易出现错误。
* 不适用于新手使用
* @author Terry
*
*/
public class PojoAction {
public String execute(){
System.out.println("Pojo.execute() is do......"); return "success";
}
}
 <package name="pojo" extends="struts-default">
<action name="pojo" class="cn.hl.action.PojoAction" >
<result>/index.jsp</result>
</action>
</package>

3.优点

简单、方便。不具有侵入性(不具备侵入性:没有继承或实现其他类或接口),便于代码的迁移。

4.缺点

没有约束,容易出现错误,不适合新手使用。

【实现接口】

1.概述

通过实现Action接口的方式实现Action类。

2.示例

 /**
* 实现方式
* 创建类并实现Action接口
*
* 优点:
* 具有一定的约束性,减少了错误的发生
* 缺点:
* 通过实现的方式实现的Action,使类具有了侵入性,降低了代码的迁移性
*
* @author Terry
*
*/
public class InheritAction implements Action{ @Override
public String execute() throws Exception {
System.out.println("InheritAction.execute() is do......");
return null;
} }

3.优点

具有一定的约束性,减少了错误的发生

4.缺点

通过实现的方式实现的Action,使类具有了侵入性,降低了代码的迁移性

【继承类】

1.概述

通过继承ActionSupport类的方式实现Action。

2.示例

 /**
* 继承方式实现Action
* 通过继承ActionSupport类进行实现
*
* 优点:
* 可以直接继承父类的非私有成员,达到最少代码实现Action
* 缺点:
* 具有侵入性,同时会继承父类所有非私有成员(这些成员不一定都被使用)
* 官方推荐方式
* @author Terry
*
*/
public class ExtendsAction extends ActionSupport{ }

3.优点

可以直接继承父类的非私有成员,达到最少代码实现Action

4.缺点

具有侵入性,同时会继承父类所有非私有成员(这些成员不一定都被使用)

【Action接口的成员】

  • success :表示Action执行成功,需要将结果展示给用户
  • none :表示Action执行成功,但不需要象用户展示任何内容。如:下载功能
  • error :表示Action执行失败,需要向用户展示一个错误视图
  • input :表示需要跳转到输入表单时使用
  • login :表示需要用户执行登录时使用

Action的实现方式的更多相关文章

  1. Action的编写方式

    四.Action 的编写方式 : 三种 第一种 创建普通类 不继承任何类,不实现任何接口 Public class HelloAction{  } 第二种 创建类,实现接口action Public ...

  2. struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的?

    struts2中,Action通过什么方式获得用户从页面输入的数据,又是通过什么方式把其自身的数据传给视图的? 解答: 1)可以直接通过与表单元素相同名称的数据成员(需要存在符合命名规范set和get ...

  3. java之struts2的action的创建方式

    首先action是用来处理请求的, 这里struts2中的action的3中创建方式. 1.无侵入性的创建方式. 无侵入性:使用第三方的框架,不直接继承或实现第三方提供的类或者接口就说是无侵入性的. ...

  4. struts2 之 Action的创建方式

    总结:struts2是一个轻量级框架,提供了无侵入性的实现方式,struts2也提供了接口和类来实现action.通过实现接口或者继承类来实现action可以实现struts2提供的相关功能, 1. ...

  5. Struts2笔记2--动态方法调用和Action接收请求方式

    动态方法调用(在请求的时候,再明确具体的响应方法,配置的时候不明确): LoginAction类中有两个方法some和second 1. 动态方法的调用(修改常量struts.enable.Dynam ...

  6. struts2 页面向Action传参方式

    1.基本属性注入 我们可以直接将表单数据项传递给Action,而Action只需要提供基本的属性来接收参数即可,这种传参方式称为基本属性注入.例如 jsp页面: <s:form method=& ...

  7. 【代码总结】Struts2 Action接受参数方式的对比

    一.属性方式 1.Action中:对应表单参数的setter.getter 2.页面中  :Form中元素name取值属性名 <s:property value="属性名" ...

  8. 07. struts2中对Action的管理方式

    web.xml配置文件的常用代码 <filter> <filter-name>struts2</filter-name> <filter-class>o ...

  9. Struts中Action三种接收参数的方式?

    前言: 前面已经有一篇随笔介绍了Struts2的大概原理.本文就Struts2中Action与jsp页面进行数据对接时介绍几种常见方法! 值栈ValueStack 3个Action Action1 p ...

随机推荐

  1. jQuery offset()源码解析

    首先是原型上的offset方法,根据arguments判断到底是取值还是设值.如果是设置,就遍历调用静态方法jQuery.offset.setOffset 如果是取值.那么就是从"var d ...

  2. B. Dispersed parentheses 记忆化搜索 + 括号序列的状压表示

    http://codeforces.com/gym/100633/problem/B B. Dispersed parentheses time limit per test 2 seconds me ...

  3. Parenthesis UVALive - 4882 删除不必要的括号序列,模拟题 + 数据

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  4. 牛客网Java刷题知识点之调用线程类的start()方法和run()方法的区别

    不多说,直接上干货! 前期博客 牛客网Java刷题知识点之四种不同的方式创建线程 这里很简单 首先,系统通过调用线程类的start()方法来启动一个线程,此时这个线程处于就绪状态,而非运行状态,也就意 ...

  5. 百度Ueditor多图片上传控件

    发现百度的Ueditor富文本编辑器中的多图片上传控件很不错,于是便想着分享出来使用,费了老劲,少不了无名朋友的帮助,也查了不少资料,终于搞定了 发代码给大家,请大家多多指正 1.首先要在html页面 ...

  6. Codeforces Round #250 (Div. 1)

    这几次CF都挺惨.. A 没条边权设为两端点的最小点权,最后加起来. 数组开小,WA一次 #include <iostream> #include<cstdio> #inclu ...

  7. Linux crontab 设置定时任务

    crontab crontab 用于设置系统自动执行的周期性任务 # m h dom mon dow user command 17 * * * * root cd / && run- ...

  8. nodejs 快要变成爬虫界的王者

    nodejs 快要变成爬虫界的王者 爬虫这东西是很多数据采集必须要的东西. 但是现在随着网页不断发展,已经出现了出单纯的网页,到 ajax 网页, 再到 spa , 再到 websocket 应用,一 ...

  9. mint-ui pull down不起作用及解决方案

    <template> <div style="min-height:200px"> <mt-loadmore :top-method="lo ...

  10. 如何尽量避免引用jQuery

    Introduction 正如jQuery所宣称的一样,Write Less, Do More.很多时候我们喜欢用它来解决问题.但增加一个库必然意味着更大的网络负担,意味着更高的页面初始载入时间.并且 ...