源码如下,
package org.apache.struts2.dispatcher.mapper;
import com.opensymphony.xwork2.config.ConfigurationManager;
import javax.servlet.http.HttpServletRequest;
public interface ActionMapper {
ActionMapping getMapping(HttpServletRequest var1, ConfigurationManager var2);
ActionMapping getMappingFromActionName(String var1);
String getUriFromActionMapping(ActionMapping var1);
}
一个请求在 Struts2 框架中的处理大概会经过以下几个步骤:
-
1、客户端发出一个指向 Servlet 容器(例如Tomcat)的请求。
-
2、这个请求会经过几个过滤器 Filter(ActionContextCleanUp 可选过滤器、其他 Web 过滤器如 SiteMesh 等),最后到达 FilterDispatcher 过滤器。
-
3、接着 FilterDispatcher 过滤器被调用,FilterDispatcher 询问 ActionMapper 来决定这个请求是否需要调用某个 Action。
-
4、如果 ActionMapper 决定需要调用某个 Action,FilterDispatcher 把请求的处理交给 Action 对象的代理(ActionProxy)。
-
5、ActionProxy 通过配置管理器(Configuration