|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectcom.bastengao.struts2.freeroute.DefaultRouteMappingHandler
public class DefaultRouteMappingHandler
处理所有的路由信息
可将 mapping 分成两种,一种是静态的 直接通过 Map 就可以快速找到路由; 另一种是有 pathVariable 的,需要通过正则匹配查找路由
| 字段摘要 | |
|---|---|
private Map<String,RouteMapping> |
actionConfig2RouteMapping
action 信息映射到对应的路由 "{packageName}{actionName}" => RouteMapping |
private com.google.common.collect.ArrayListMultimap<String,RouteMapping> |
dynamicRoutes
routePath 中包括 pathVariable 中的路由映射 |
private List<Pattern> |
dynamicRoutesPatterns
|
private static org.slf4j.Logger |
log
|
private com.google.common.collect.ArrayListMultimap<String,RouteMapping> |
staticRoutes
静态路由 |
| 构造方法摘要 | |
|---|---|
DefaultRouteMappingHandler()
|
|
| 方法摘要 | |
|---|---|
private RouteMapping |
findDynamicMaxWeight(javax.servlet.http.HttpServletRequest request,
List<RouteMapping> routeMappings)
找出路径变量最少的,然后再比较权重 |
private RouteMapping |
findMaxWeight(javax.servlet.http.HttpServletRequest request,
List<RouteMapping> routeMappings)
根据已经匹配 servletPath 的路由集合找出最匹配的路由, 如果没有返回 null 指定 method 的要比不指定 method 的权重高 -> 1001 > 1000 params 多的要比 params 少的权重高 -> 8 > 2 params 匹配但没有指定 method 要比 指定 method 但没有 params 的权重高 -> 1002 > 10001 未指定 method 权重 1000 指定 method 权重 1001 params 权重一个 2 |
private static Set<String> |
paramNames(javax.servlet.http.HttpServletRequest request)
返回请求中有的参数名称 |
void |
put(RouteMapping routeMapping,
com.opensymphony.xwork2.config.entities.ActionConfig actionCfg)
按照静态路由和动态路由分别放到两个集合中 |
RouteMapping |
route(com.opensymphony.xwork2.config.entities.ActionConfig actionConfig)
根据 action 信息返回对应的路由 |
RouteMapping |
route(javax.servlet.http.HttpServletRequest request)
根据请求返回对应的路由映射, 如果没有返回 null |
private static int |
weightOfMethod(javax.servlet.http.HttpServletRequest request,
RouteMapping routeMapping)
返回 method 的权重,如果不匹配返回 -1 如果没有指定则为 1000, 其他为 1001 |
private static int |
weightOfParams(javax.servlet.http.HttpServletRequest request,
RouteMapping routeMapping)
返回 params 的权重. |
private static int |
weightOfRoute(javax.servlet.http.HttpServletRequest request,
RouteMapping routeMapping)
返回请求与匹配的路由的权重. |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 字段详细信息 |
|---|
private static final org.slf4j.Logger log
private com.google.common.collect.ArrayListMultimap<String,RouteMapping> staticRoutes
private com.google.common.collect.ArrayListMultimap<String,RouteMapping> dynamicRoutes
private List<Pattern> dynamicRoutesPatterns
private Map<String,RouteMapping> actionConfig2RouteMapping
| 构造方法详细信息 |
|---|
public DefaultRouteMappingHandler()
| 方法详细信息 |
|---|
public void put(RouteMapping routeMapping,
com.opensymphony.xwork2.config.entities.ActionConfig actionCfg)
RouteMappingHandler 中的 putrouteMapping - actionCfg - public RouteMapping route(com.opensymphony.xwork2.config.entities.ActionConfig actionConfig)
RouteMappingHandler 复制的描述
RouteMappingHandler 中的 routepublic RouteMapping route(javax.servlet.http.HttpServletRequest request)
RouteMappingHandler 复制的描述
RouteMappingHandler 中的 route
private RouteMapping findDynamicMaxWeight(javax.servlet.http.HttpServletRequest request,
List<RouteMapping> routeMappings)
request - routeMappings -
private RouteMapping findMaxWeight(javax.servlet.http.HttpServletRequest request,
List<RouteMapping> routeMappings)
request - routeMappings -
private static int weightOfRoute(javax.servlet.http.HttpServletRequest request,
RouteMapping routeMapping)
request - routeMapping -
private static int weightOfMethod(javax.servlet.http.HttpServletRequest request,
RouteMapping routeMapping)
request - routeMapping -
private static int weightOfParams(javax.servlet.http.HttpServletRequest request,
RouteMapping routeMapping)
request - routeMapping -
private static Set<String> paramNames(javax.servlet.http.HttpServletRequest request)
request -
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||