struts2中的Action接口和Actionsupport接口各有啥作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2中的Action接口和Actionsupport接口各有啥作用相关的知识,希望对你有一定的参考价值。

参考技术A

1、Struts2的Action无须实现任何接口或继承任何类型,普通的POJO类就可以用做Action类。

Struts2中通常直接使用Action来封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应的属性,并且为属性提供对应的getter和setter方法。

2、ActionSupport已经实现了Action接口,还实现了Validateable接口,提供了数据校验功能。通过继承该ActionSupport类,可以简化Struts2的Action开发。

Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。

Actionsupport还提供了一个getText(Stringkey)方法还实现国际化,该方法从资源文件上获取国际化信息。

扩展资料:

Action接口有:

publicstaticfinaljava.lang.StringSUCCESS="success";

publicstaticfinaljava.lang.StringNONE="none";

publicstaticfinaljava.lang.StringERROR="error";

publicstaticfinaljava.lang.StringINPUT="input";

publicstaticfinaljava.lang.StringLOGIN="login";

publicabstractjava.lang.Stringexecute()throwsjava.lang.Exception;

参考资料:百度百科-ACTION

Struts1和Struts2的区别

1)从action类上分析:Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口;Struts2 action提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
2)从servlet依赖分析:Struts1 Action 依赖于Servlet API ,因为当一个Action被调用时,HttpServletRequest和HttpServletResponse 被传递给execute方法。Struts2Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2Action仍然可以访问初始的request和response。
3)从action线程模式分析:Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求,开发需要极其小心。Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。
4)从捕获输入分析:Struts1使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。
5)从表达式语言分析:Struts1 整合了JSTL,Struts2可以使用JSTL,但是也支持OGNL(Object Graph Notation Language)

【】

以上是关于struts2中的Action接口和Actionsupport接口各有啥作用的主要内容,如果未能解决你的问题,请参考以下文章

struts2框架-----Action

Struts2——通配符,Action Method_DMI

Struts2的Action(简单讲解版)

struts2之day01——05Struts2的action创建

[struts2学习笔记] 第五节 编写struts2的action代码

Struts2中的Action类(解耦方式,耦合方式)