前言:
最近实习工作比较闲,没事便看了看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
Algorithms.of.informatics.Vol.1.Foundations
Infragistics.NetAdvantage.Ultimate.2011.Vol.1.key
Patterns in Java Vol1.chm
Infragistics.NetAdvantage.Ultimate.2011.Vol.1 Vol.2 序列号
Richard.Stevens.-.Unix.Network.Programming.Vol.1.(Addison-Wesley)
Infragistics.NetAdvantage.for.ASP.NET.2010.Vol.2 & For SliverLight 2010 Vol.2.rar
Prioritization to Prediction Vol1.pdf
Patterns in Java Vol2.pdf
本书中讲述Halcon实现图像处理的基本原理,英文版(含目录)
Thinking in C++ Vol 1.rar
Infragistics NetAdvantage for WPF 2008 Vol 1.part1
Infragistics.NetAdvantage. 2013.Vol.1 Keymaker
best_of_sql_server_central_vol1.pdf
MS.10226A.Programming.In.C.With.Visual.Stdio.2010.Trainer.Handbook.Vol1.eBOOK-LMS.pdf
THE CIP NETWORKS LIBRARY_Vol1.rar
MS.10267A.Introduction.To.Web.Development.With.Visual.Studio.2010.Trainer.HandBook.Vol1.eBOOK-LMS
Infragistics NetAdvantage for WPF 2008 Vol 1.part2