Action类为何要 extends ActionSupport
2014-02-18 20:21
246 查看
我做的时候,我的action是继承ActionSupport的 Struts 2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类,
但是,我们为了方便实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,
并重载(Override)此类里的String execute()方法,因为ActionSupport已经实现了Action接口,
还实现了Validateable接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts 2的Action开发。
Action 跟 Actionsupport 的区别: 当我们在写action的时候,可以实现Action接口,也可以继承Actionsupport这个类.到底这两个有什么区别呢?
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方法。
相关文章推荐
- Action类为何要 extends ActionSupport
- Action类为何要 extends ActionSupport
- Action类为何要 extends ActionSupport
- 学习struts2建bbs总结七:extends ActionSupport带来的ClassNotFoundException异常
- UserAction extends ActionSupport implements ModelDriven<User> .tmp 上传图片文件
- struts获取表单参数(最常用的是 extends ActionSupport)
- 使用github上的开源框架SlidingMenu环境的搭建,以及getSupportActionBar方法不能找到的问题
- Android Support Design 控件 FloatingActionButton
- struts做开发的时候action是继承Action方法还是ActionSupport方法
- toolbar使用时显示AppCompat does not support the current theme features: { windowActionBar: false, windowA
- (Android)actionbarsherlock getSupportActionBar() return null in android4.0,but in 2.3.3 is ok
- struts2配置中Action的name和package的name和namespace的用法,以及extends属性
- libgdx为何去掉了Action类中的setCompletionListener
- 在jsp中使用request.setAttribute()为何在跳转到Action后无法提出
- ActionBarSherlock SlidingMenu整合,解决SlidingMenu example的getSupportActionBar()方法不能用问题
- design support library第一部分 – 浮动操作按钮__FloatingActionButton
- Android Support Design 控件 FloatingActionButton
- LookupDispatchActionSupport和DispatchActionSupport的最大不同
- struts2--action请求与Action类
- struts2的传参和struts2的第二种开发方式(继承ActionSupport)