Struts2继承ActionSupport接口

    ActionSupport类源码:http://blog.csdn.net/hikvision_java_gyh/article/details/9849561 

  struts2的ActionSupport接口分析:http://blog.csdn.net/ikaraide/article/details/17709195 

  Struts2 继承ActionSupport的用处:http://blog.csdn.net/heng_ji/article/details/7177450 



  当我们在写action的时候,可以实现Action接口,也可以继承Actionsupport这个类.到底这两个有什么区别呢?
  Actionsupport类实际上是对Action接口的一个拓展
 可以继承自ActionSupport类
也可以实现Action接口
也可以什么都不继承。

因为Struts2会用反射的原理来调用方法。一般定义为
public String execute() {

}

那么继承自ActionSupport有什么好处呢。
一:可以使用Struts2提供的国家化支持。也就是使用getText方法。
二:可以使用Struts2提供的校验支持。使用addFieldErrors等方法。
三:表现层,可以使用等来输出错误信息。
四:使用Action接口定义的常量,如SUCCESS等。

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方法。

你可能感兴趣的:(【52】Struts2)