struts源码之九
strtsu2完成request的封装后,就创建ActionMapping
ActionMapping的创建过程也很明了。
?
?然后从uri中分析action请求中的name和namespace
?然后在handleSpecialParameters才有了处理
?
?
?
这样就给mapping设置了。
?
就拿这个例子来说把,创建了ServletRedirectResult
然后放入mapping中,在后续的执行中会使用,我们可以进入ServletRedirectResult 看看这个类,
有一个核心方法doExecute。
在我们调用action返回的时候会调用到这里doExecute。
这里暂时不做详细介绍,
代码如下:
?
回到我们的 DefaultActionMapper中,完成了上面的处理,进入parseActionName
分析action的名称。
?parseActionName(mapping);
具体的代码如下:
?
?
如果为空则之间返回,否则处理类似name!method这样的请求 action
处理完成返回.ActionMapping
actionMapping处理完成后放入request中。
if (mapping != null) { request.setAttribute(STRUTS_ACTION_MAPPING_KEY, mapping); }?
至此,ActionMapping创建完成。
?
?
?
?
?
?
?
?