1 基本知识
由于struts2是在webwrok的技术基础上开发的,采用拦截器的机制来处理用户请求的全新MVC框架。而webwork是建立在成为xwork的command模式框架之上的强大的基于web的MVC框架。所以总而言之,无论是struts2还是webwork底层都是xwork。如果看过struts源码的朋友肯定会发现struts中导入好多xwork2类。下面就xwork做一个介绍:
关于webwork的详细介绍请参照百度百科:
http://baike.baidu.com/view/25660.htm
1.1 Xwork
1.1.1 Xwork概况
XWork是一个标准的Command模式实现,并且完全从web层脱离出来。Xwork提供了很多核心功能:前端拦截机(interceptor),运行时表单属性验证,类型转换,强大的表达式语言(OGNL – the Object Graph NavigationLanguage),IoC(Inversion of Control反转控制)容器等。
其目的是:创建一个泛化的、可重用且可扩展的命令模式框架,而不是一个特定在某个领域使用的框架。[1]
1.1.2 特点
1、基于一个简单的接口就可以进行灵活且可自定义的配置;
2、核心命令模式框架可以通过定制和扩展拦截器来适应任何请求/响应环境;
3、整个框架通过类型转换和使用OGNL的action属性验证来构建;
4、包含一个基于运行时Attribute和验证拦截器的强大的验证框架。
1.1.3 与webwork关系
WebWork2 被构建在XWork之上,以XWork为基础。通过使用XWork的命令模式框架和拦截器框架,提供了一个支持Web功能、能快速构建Web应用的命令模式框架。
在处理请求时,Webwork和Xwork的交互关系图如下:
图1.1.3 webwork和xwork交互关系图