类 com.bastengao.struts2.freeroute.RouteMapping
的使用

使用 RouteMapping 的软件包
com.bastengao.struts2.freeroute   
 

com.bastengao.struts2.freerouteRouteMapping 的使用
 

类型参数类型为 RouteMappingcom.bastengao.struts2.freeroute 中的字段
private  Map<String,RouteMapping> DefaultRouteMappingHandler.actionConfig2RouteMapping
          action 信息映射到对应的路由

"{packageName}{actionName}" => RouteMapping

private  com.google.common.collect.ArrayListMultimap<String,RouteMapping> DefaultRouteMappingHandler.dynamicRoutes
          routePath 中包括 pathVariable 中的路由映射
private  com.google.common.collect.ArrayListMultimap<String,RouteMapping> DefaultRouteMappingHandler.staticRoutes
          静态路由
 

返回 RouteMappingcom.bastengao.struts2.freeroute 中的方法
private  RouteMapping DefaultRouteMappingHandler.findDynamicMaxWeight(javax.servlet.http.HttpServletRequest request, List<RouteMapping> routeMappings)
          找出路径变量最少的,然后再比较权重
private  RouteMapping DefaultRouteMappingHandler.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

 RouteMapping RouteMappingHandler.route(com.opensymphony.xwork2.config.entities.ActionConfig actionConfig)
          根据 action 信息返回对应的路由
 RouteMapping DefaultRouteMappingHandler.route(com.opensymphony.xwork2.config.entities.ActionConfig actionConfig)
           
 RouteMapping RouteMappingHandler.route(javax.servlet.http.HttpServletRequest request)
          根据请求返回对应的路由映射, 如果没有返回 null
 RouteMapping DefaultRouteMappingHandler.route(javax.servlet.http.HttpServletRequest request)
           
 

返回变量类型为 RouteMapping 的类型的 com.bastengao.struts2.freeroute 中的方法
static List<RouteMapping> ControllerPackageProvider.parseController(Class controller)
          解析 Controller 并返回路由信息
 

参数类型为 RouteMappingcom.bastengao.struts2.freeroute 中的方法
private  com.opensymphony.xwork2.config.entities.ActionConfig ControllerPackageProvider.createActionConfig(com.opensymphony.xwork2.config.entities.PackageConfig.Builder packageCfgBuilder, ActionInfo actionInfo, RouteMapping routeMapping)
           
private static org.apache.struts2.dispatcher.mapper.ActionMapping DefaultActionMapper.createActionMapping(String namespace, String actionName, RouteMapping routeMapping, javax.servlet.http.HttpServletRequest request)
          创建对应的 ActionMapping, 并初始化 ActionMapping.params
private  com.opensymphony.xwork2.config.entities.ResultConfig DefaultUnknownHandler.findResultConfig(RouteMapping routeMapping, String resultCode, Map<String,com.opensymphony.xwork2.config.entities.ResultTypeConfig> resultTypes)
          找能够处理的 resultType
private static String DefaultUnknownHandler.parsePath(String globalContentBase, RouteMapping routeMapping, String originPath)
          解析路径 区分相对路径还是绝对路径。
private  com.opensymphony.xwork2.config.entities.ResultConfig DefaultUnknownHandler.parseResultCodeToResultConfig(com.opensymphony.xwork2.config.entities.ActionConfig actionConfig, String resultCode, RouteMapping routeMapping)
          解析 resultCode 为 ResultConfig, 如果无法解析则返回 null
 void RouteMappingHandler.put(RouteMapping routeMapping, com.opensymphony.xwork2.config.entities.ActionConfig actionCfg)
          添加新的路由
 void DefaultRouteMappingHandler.put(RouteMapping routeMapping, com.opensymphony.xwork2.config.entities.ActionConfig actionCfg)
          按照静态路由和动态路由分别放到两个集合中
private static void DefaultActionMapper.setParamsByCookieValues(org.apache.struts2.dispatcher.mapper.ActionMapping actionMapping, RouteMapping routeMapping, javax.servlet.http.HttpServletRequest request)
          通过 cookie 设置 params
private static void DefaultActionMapper.setParamsByPathVariables(org.apache.struts2.dispatcher.mapper.ActionMapping actionMapping, RouteMapping routeMapping, javax.servlet.http.HttpServletRequest request)
          设置路径变量的值到 action 的 params 中, 然后 struts 会将 params 应用到对应的 action 的属性上(setter)
private static int DefaultRouteMappingHandler.weightOfMethod(javax.servlet.http.HttpServletRequest request, RouteMapping routeMapping)
          返回 method 的权重,如果不匹配返回 -1 如果没有指定则为 1000, 其他为 1001
private static int DefaultRouteMappingHandler.weightOfParams(javax.servlet.http.HttpServletRequest request, RouteMapping routeMapping)
          返回 params 的权重.
private static int DefaultRouteMappingHandler.weightOfRoute(javax.servlet.http.HttpServletRequest request, RouteMapping routeMapping)
          返回请求与匹配的路由的权重.
 

类型变量类型为 RouteMappingcom.bastengao.struts2.freeroute 中的方法参数
private  RouteMapping DefaultRouteMappingHandler.findDynamicMaxWeight(javax.servlet.http.HttpServletRequest request, List<RouteMapping> routeMappings)
          找出路径变量最少的,然后再比较权重
private  RouteMapping DefaultRouteMappingHandler.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

 



Copyright © 2013 bastengao. All Rights Reserved.