从较高级别看,Struts2 是一个pull类型的MVC或者MVC2框架。Struts2的模型-视图-控制器模式由以下五个核心组件实现:
Actions
Interceptors
Value Stack / OGNL
Results / Result types
View technologies
Struts 2 与传统的MVC框架稍有不同是action扮演model的角色而不是controller的角色,尽管它们有一些重叠。
Struts2 MVC模式的体系结构概述图
上面的图描述了Struts2 的Model,View 和Controller 高级体系结构。Controller 由Struts2 dispatch servlet filter和interceptors实现,Model由actions实现,View 作为结果和结果类型的组合,值栈和OGNL提供统一线程,用于连接和集成其他组件。
除了上面的组件,还有很多与配置相关的信息。配置Web应用程序,以及actions,intercepors,results等。
请求的生命中期:
基于上面的图,Struts2中用户的请求生命周期可以做如下一种解释:用户向服务器发送请求,用于请求某些资源(如页面)
FilterDispatcher 查看请求并且决定何时的Action
配置适用于验证和文件上传等的interceptors 功能
选择的action被执行,以执行请求的操作
此外,如果需要的话,配置interceptors 用于任何后期处理
最后View准备结果并且把结果返回给用户