前言:
最近实习工作比较闲,没事便看了看xwork的源代码,并加上自己的浅薄的分析,发表成文纯属娱乐。
概要:
本篇介绍xwork的ActionSupport以及其主要接口,从接口与功能上介绍分析
xwork是webwork和struts2的核心
而action是xwork的最常用的类
所以,先从这里入手
首先看一下com.opensymphony.xwork2.ActionSupport的继承关系
其主要继承了
- Action接口:执行逻辑代码的方法接口
- Validateable接口:提供一个验证表单的方法接口
- ValidationAware接口:用于接受Action执行中的类级或者字段级的错误信息并将他们入一个Map容器中
- LocaleProvider接口:得到本地化信息的接口;
- TextProvider接口:根据本地化配置给ActionSupport类提供文本、消息
- Serializable接口:为什么ActionSupport需要Serializable化?
然后我们再一个一个进行分析:
1.Action接口
Action接口比较简单
主要是定义了常用的5个Result的值
分别是SUCCESS,ERROR,INPUT,LOGIN,NONE
方法只有一个
public String execute() throws Exception;
为主要的逻辑代码入口方法,可以抛去一个系统级的异常
2.Validateable
只有一个方法,用于提供子类去实现验证表达的接口
void validate()
3.ValidationAware
接口内都是些关于FiledError和ActionError的方法
其作用便是接受字段级与类级(Action)中的错误信息并放入持有类容器中
void setActionErrors(Collection errorMessages);
Collection getActionErrors();
void setActionMessages(Collection messages);
Collection getActionMessages();
void setFieldErrors(Map errorMap);
Map getFieldErrors();
void addActionError(String anErrorMessage);
void addActionMessage(String aMessage);
void addFieldError(String fieldName, String errorMessage);
boolean hasActionErrors();
boolean hasActionMessages();
boolean hasErrors();
boolean hasFieldErrors();
将所有方法归类为3种信息
第一种是关于ActionError,其次是FieldError还有一种便是ActionMessage
4.LocaleProvider
方法只有一个,获取本地化配置信息Locale类
Locale getLocale();
5.TextProvider
重载了N回getText方法
其作用只有一个,通过本地化配置获取文本,应该是处理i18n的(主观臆断)
6.Serializable
为何会实现本接口,由于认知有限还没理解,初步认为是为了在pause一个action的时候在一次恢复他的状态的而使用的。而且ActionSupport重写了clone方法
关于ActionSupport自身接口
纵观ActionSupport其大部分接口都委托给了
TextProviderSupport,ValidationAwareSupport去实现接口
而在ActionSupport内自己实现的
只有用于获取本地化信息的
public Locale getLocale() {
ActionContext ctx = ActionContext.getContext();
if (ctx != null) {
return ctx.getLocale();
} else {
LOG.debug("Action context not initialized");
return null;
}
}
与逻辑入口方法
public String execute() throws Exception {
return SUCCESS;
}
还有就是验证性方法,虽然他什么都不做,需要用户去复写
public void validate() {
}
关于ActionSupport结构的东西就这么点,比较没有营养
其初始化的过程会在下一次进行分析
- 大小: 22.1 KB
分享到:
相关推荐
TCPIP-vol2.dist.tar.Z TCPIP-vol2.dist.tar.Z TCPIP-vol2.dist.tar.Z
C++ Networking, Volume 1, introduced ACE and the wrapper facades, which are basic network computing ingredients. Volume 2 explains how frameworks build on wrapper facades to provide higher-level ...
AAA Stylized Projectiles Vol.1AAA Stylized Projectiles Vol.1AAA Stylized Projectiles Vol.1AAA Stylized Projectiles Vol.1AAA Stylized Projectiles Vol.1
Infragistics.NetAdvantage.Ultimate.2011.Vol.1.key
Patterns in Java Vol1.chm
Richard.Stevens.-.Unix.Network.Programming.Vol.1.(Addison-Wesley)
【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.12.pdf【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.12.pdf【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.12.pdf【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.12.pdf【阿里...
【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.11.pdf【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.11.pdf【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.11.pdf【阿里妈妈】节点趋势|阿里妈妈经营指南VOL.11.pdf【阿里...
根据提供的标题、描述、标签及部分内容,我们可以了解到这些信息与“Infragistics.NetAdvantage.Ultimate 2011 Vol.1”和“Vol.2”的序列号有关。下面将详细介绍与此相关的知识点,包括Infragistics.NetAdvantage是...
Infragistics.NetAdvantage. 2013.Vol.1 Keymaker
本书中讲述Halcon实现图像处理的基本原理,英文版(含目录)
Infragistics NetAdvantage for WPF 2008 Vol 1.part1
开源的vol.vue源码,包括全部源码和资料。这是后端,前端在Vol.Vue,分卷压缩包第二部分
接下来,`VOL.Order`、`VOL.Core`、`VOL.Entity`、`VOL.Builder`、`VOL.System`、`VOL.AppManager` 和 `VOL.WebApi` 这些文件夹可能代表了项目的不同模块或者层。例如: - `VOL.Order` 可能包含了处理订单管理的...
《TCP/IP进行网际互联 第三卷:Linux/POSIX套接字版》源代码压缩包 "TCPIP-vol3.linux.dist.rar" 包含了深入理解和实践网络编程的重要资源,特别是对于那些专注于Linux系统和POSIX套接字的人来说。这个压缩文件中的...
Infragistics NetAdvantage for WPF 2008 Vol 1.part2
Infragistics NetAdvantage for WPF 2008 Vol 1.part3
Infragistics NetAdvantage for WPF 2008 Vol 1.part4
DXperience.2007.Vol.2.v7.2.2.NET.Incl.Keygen-ECLiPSE
根据提供的文件信息,“Algorithms of Informatics Vol.1 Foundations”主要涵盖了信息学领域的基础算法知识。本书由多位知名学者和专家共同编著完成,并在匈牙利科学院数学部门的支持下出版。下面将对本书涉及的...