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接口中的源代码:
通过发现,我们可以看到Action中定义了一些常量,通常用于我们的视图返回,ActionSupport这个类,里面除了定义了一些自己的方法,还定义了一个validate()方法,这个方法会在execute方法执行之前执行,验证表单是否为空等情况,子类继承AcitonSupport类之后需要自己写实现。除此之外我们从ActionSupport这个类中我们还可以看到另外一个方法就是getText(String key)方法。这个方法可以从资源文件中获取到国际化信息。
其实我们的ActionSupport类不仅仅实现了Action接口:
public class ActionSupport implements Action, Validateable, ValidationAware, TextProvider, LocaleProvider, Serializable {...},其中LocalProvider接口,主要是本地化消息文件提供了一个国际化解决方案。
所以在日常开发中,我们一般会继承ActionSupport这个类,为了使我们的Action更加强大。
下面来看看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更加强大。
相关文章推荐
- 为eclipse离线安装hibernate tools插件
- Java排序算法
- spring4+websocket(兼容低版本ie)
- Maven搭建Spring Security3.2项目详解
- Maven搭建SpringMVC+Hibernate项目详解
- Java并发编程--CyclicBarrier
- eclipse中maven搭建birt需要的配置
- java 的exception throw try catch
- 关于maven工程导入eclipse在java build path中找不见maven依赖解决办法
- java写的wtmpx解析文件,新手第一次,弄了好久,自己备份一下
- 搭建strus2,修改struts.xml配置文件的路径后报错
- struts2与spring4整合报错及处理方法
- jersey-spring,jersey集成spring
- java基础Runtime类的使用
- Java访问远程服务
- Java访问远程服务
- 线程池的总结
- 摘自:java夜未眠之java学习之道
- 在Win7系统中配置Eclipse的JDK环境变量
- java时间处理实例