Action类继承ActionSupport的原因

本文预计阅读时间 4 分钟
问题:在Struts2框架中,Action类为何要继承ActionSupport类?

Action类继承ActionSupport的原因

理论上Struts2的Action类无须实现任何接口或继承任何类型,但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重载(Override)此类里的String execute()方法。当然我们也可以在写action的时候实现Action接口.

Action接口有:

  1. public static final java.lang.String SUCCESS = "success";
  2. public static final java.lang.String NONE = "none";
  3. public static final java.lang.String ERROR = "error";
  4. public static final java.lang.String INPUT = "input";
  5. public static final java.lang.String LOGIN = "login";
  6. 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,大多数情况下都会继承ActionSupport类,并重写此类里的public String execute() throws Exception方法。因为此类中实现了很多的实用接口,提供了很多默认方法,这些默认方法包括国际化信息的方法、默认的处理用户请求的方法等,这样可以大大的简化Acion的开发。Struts2中通常直接使用Action来封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应的属性,并且为属性提供对应的getter和setter方法。

参考资料:http://www.cnblogs.com/ningvsban/p/3588451.html

weinxin
七墨微信
请留下您宝贵的意见,或者每天来本站的文章页面签到,七墨将不胜感激~~
七墨

来一发,更加快活

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: