strus2 框架介绍

 

strus2 执行过程:

 

ActionMapper会去找ActionMapping查找URL请求的映射

1:ActionMapping这个类用name+namespace确定请求的映射,

 

(但是仍然不知道具体是配置哪个Action类去处理该请求)

2 找到ActionMapping之后将信息返回给核心控制器StrutsAndPreparedExecuteFileter,核心控制器再

执行如下代码:(将这个mapping传递给下一个执行者)

 

 

3:执行之前,Strust框架要首先创建代理类 :

 

怎么创建的呢?

通过传过来了mapping到strus.xml中找到具体执行的Action类,

 

再创建ConfigurationManager对象,得到Configuration类

 

再由Configuration类结合mapping信息到struts.xml文件中查找相关的Action类,找到了就通过反射的方式为其创建代理

 

找到了,就为其创建代理Action Invocation接口(真正干活儿的人)

 

【详见源代码】

 

他有两个实现类(也就是真正干活儿的人):

以defualtActionInvocation为例:

 

 

 

最终用反射的方式动态调用并执行当前action的invoke方法!所以说,ActionInvocation就是具体代理Action去干活的人。

 

 

拿到result字符串,找到相应的视图页面,检查页面是否定义struts的标签,并用计算好的模板,加上刚才执行action拿到的数据递归退出拦截器,再用已有的响应返回到视图)

posted @ 2017-12-16 23:21  老人与JAVA  阅读(933)  评论(0编辑  收藏  举报