Struts2中的Action和ActionSupport

        在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更加强大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值