struts做开发的时候action是继承Action方法还是ActionSupport方法

 我来答
匿名用户
推荐于2017-10-01
展开全部
我做的时候,我的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方法。
cheng701898
高粉答主

推荐于2017-10-13 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:6.2万
采纳率:85%
帮助的人:6427万
展开全部
Action是一个接口
ActionSupport是实现了Action接口
实际开发中是继承ActionSupport这是因为ActionSupport类里给我实现了很多的方法,我们可以直接拿过来用
  这个其实没有什么特别的要求的,ActionSupport是Action下延伸出来的类,它是Action的子类,Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。
另外,Actionsupport还提供了一个getText(String key)方法还实现国际化,该方法从资源文件上获取国际化信息.
这样在自定义标签时可以定义一个变量为new actionsupport对象实现国际化。
可以在不同的情况下使用不同的Action。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抽烟一族
2011-04-14 · TA获得超过395个赞
知道小有建树答主
回答量:218
采纳率:100%
帮助的人:143万
展开全部
这个其实没有什么特别的要求的,ActionSupport是Action下延伸出来的类,它是Action的子类,Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。
另外,Actionsupport还提供了一个getText(String key)方法还实现国际化,该方法从资源文件上获取国际化信息.
这样在自定义标签时可以定义一个变量为new actionsupport对象实现国际化。
我做的项目中还有继承DispatchAction的,这个类主要是为了方便,不用再多写Action了,所以就是说,在不同的情况下使用不同的Action,希望是你想要的答案
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcl19880917
2011-04-14 · TA获得超过3875个赞
知道小有建树答主
回答量:314
采纳率:0%
帮助的人:206万
展开全部
继承没有硬性要求的呢,你可以继承也可以不继承呢
而且action是接口的,是实现不是继承的
它们主要提供了一些终结静态String的,还有actionsupport中还有提供validate()验证方法的及其国际化的一些东西

详细

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对象实现国际化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辉哥耕耘社
2011-04-14
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
Action是一个接口
ActionSupport是实现了Action接口
实际开发中是继承ActionSupport这是因为ActionSupport类里给我实现了很多的方法,我们可以直接拿过来用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式