struts2中的Action接口和Actionsupport接口各有啥作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2中的Action接口和Actionsupport接口各有啥作用相关的知识,希望对你有一定的参考价值。
参考技术A1、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 Method_DMI
struts2之day01——05Struts2的action创建