`
newleague
  • 浏览: 1475791 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

struts2 action基类 ActionSupport

 
阅读更多

Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口,还实现了Validateable接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。

Action 跟 Actionsupport 的区别:
当我们在写action的时候,可以实现Action接口,也可以继承Actionsupport这个类.到底这两个有什么区别呢?

Action接口有:
public static final java.lang.String SUCCESS = "success";
public static final java.lang.String NONE = "none";
public static final java.lang.String ERROR = "error";
public static final java.lang.String INPUT = "input";
public static final java.lang.String LOGIN = "login";
public abstract java.lang.String execute() throws java.lang.Exception;

而Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。
另外,Actionsupport还提供了一个getText(String key)方法还实现国际化,该方法从资源文件上获取国际化信息.
这样在自定义标签时可以定义一个变量为new actionsupport对象实现国际化。

ActionSupport类的作用
       struts2不要求我们自己设计的action类继承任何的struts基类或struts接口,但是我们为了方便实现我们自己的action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重写此类里的public String execute() throws Exception方法。因为此类中实现了很多的实用借口,提供了很多默认方法,这些默认方法包括国际化信息的方法、默认的处理用户请求的方法等,这样可以大大的简化Acion的开发。
      Struts2中通常直接使用Action来封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应的属性,并且为属性提供对应的getter和setter方法。

分享到:
评论

相关推荐

    struts1.0和struts2

    struts1和struts2的区别其实并不是太大,两者的区别: ...Struts2提供一个ActionSupport基类去实现 常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。

    Struts1与Struts2本质区别

    Struts 2提供一个ActionSupport基类去实现常用的接口。即使Action接口不是必须实现的,只有一个包含execute方法的POJO类都可以用作Struts 2的Action。 2 线程模式方面的对比:Struts 1 Action是单例模式并且必须是...

    Web开发学习8Struts2基类封装

    NULL 博文链接:https://sdh88hf.iteye.com/blog/2229874

    C#操作DB2基类

    C#操作DB2基类 基类调用如下 DB2Helper db2 = new DB2Helper(); DB2Connection con = db2.GetConn(); DB2Command cmd = con.CreateCommand(); cmd.CommandText = "{ CALL CHAXUN.BIG_CASH_TRADE(?,?)}"; DB2...

    程序员必看的书籍Struts1和Struts2的区别

    程序员上班的必要的书籍,描写在岗位如何遇到的一些问题,...Struts1和Struts2的区别Action 类: Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。(侵入式编程,不赞同) ...

    dao层基类dao层基类dao层基类

    dao层基类dao层基类dao层基类dao层基类dao层基类

    JAVA-SSH面试题

    struts2.0 Action要求继承ActionSupport基类 b、线程模式 struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。 单例策略限制了Struts1.2 Action能做的事情,并且开发时...

    C#基类整理

    我收集的C#基类,比较全.我收集的C#基类,比较全. 包含有: ASP.NET类库 C#读取AD域里用户名或组 Common类库 DotNet基础类大全 SqlHelper基类 字符串加密

    C++多线程基类C++多线程基类C++多线程基类

    C++多线程基类C++多线程基类C++多线程基类C++多线程基类C++多线程基类C++多线程基类C++多线程基类C++多线程基类C++多线程基类

    DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类

    DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类...

    在Action中以Struts2的方式输出JSON数据的实例

    下面小编就为大家带来一篇在Action中以Struts2的方式输出JSON数据的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    虚基类c++程序

    使用vc6.0编写的关于虚基类的程序的cpp文件,文件来自某大学的大一c++课堂练习

    C#基类整理C#比较全的基类集合

    C#基类集合

    c# xml操作基类

    c# xml 操作 基类

    C#定义基类并重写基类方法计算图形面积和周长的windows界面程序

    2.定义Shape类的派生类三角形Tangle,使用base关键字调用基类构造函数,重写Shape类继承的虚方法:求面积虚方法Mianji(),求周长虚方法Zhouchang()。 3.定义Shape类的派生类圆形Circle,重写Shape类继承的虚方法:...

    数据类型的基类

    数据类型的基类

    很好的控件基类

    很好的控件基类

    Struts1和Struts2的比较

    Struts 1要求Action类要扩展自一个抽象基类。Struts 1的一个共有的问题是面向抽象类编程而不是面向接口编程。

    虚基类的使用实例

    在各类中分别增加以下成员: base1中增加私有数据成员int b1 base2中增加私有数据成员int b2 level1中增加私有数据成员int l1 level2中增加私有数据成员int l2 toplevel中增加私有数据成员int t

    虚基类的演示

    虚基类的演示:说明为什么使用虚基类,是用虚基类与不使用虚基类的区别,通过声音图像等多媒体说明使用虚基类的优点。

Global site tag (gtag.js) - Google Analytics