您的位置:首页 > 编程语言 > Java开发

Struts2中的Action和ActionSupport

2015-06-07 01:29 417 查看
在struts中我们经常会遇到Action接口和ActionSupport类,有时候一个控制层继承了ActionSupport类,有的则是实现了Action接口,普通的POJO类就可以作为Action类。那么Action和ActionSupport有什么区别呢?通过查看源代码我们发现Action接口中定义了一些常量和execute()方法,而ActionSupport implements Action,继承了Action接口。但是为了方便,大多数情况我们会继承com.opensymphony.xwork2.ActionSupport;

下面来看看Struts2中的Action接口中的源代码:

public interface Action {

<span style="white-space:pre">		</span>   public static final String SUCCESS = "success";
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>   public static final String NONE = "none";

<span style="white-space:pre">		</span>   public static final String ERROR = "error";

<span style="white-space:pre">		</span>   public static final String INPUT = "input";

<span style="white-space:pre">		</span>   public static final String LOGIN = "login";

<span style="white-space:pre">		</span>   public String execute() throws Exception;

}

通过发现,我们可以看到Action中定义了一些常量,通常用于我们的视图返回,ActionSupport这个类,里面除了定义了一些自己的方法,还定义了一个validate()方法,这个方法会在execute方法执行之前执行,验证表单是否为空等情况,子类继承AcitonSupport类之后需要自己写实现。除此之外我们从ActionSupport这个类中我们还可以看到另外一个方法就是getText(String key)方法。这个方法可以从资源文件中获取到国际化信息。

其实我们的ActionSupport类不仅仅实现了Action接口:

public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {...},其中LocalProvider接口,主要是本地化消息文件提供了一个国际化解决方案。

所以在日常开发中,我们一般会继承ActionSupport这个类,为了使我们的Action更加强大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: