|
||||||||||
| 上一个 下一个 | 框架 无框架 | |||||||||
| 使用 RouteMapping 的软件包 | |
|---|---|
| com.bastengao.struts2.freeroute | |
| com.bastengao.struts2.freeroute 中 RouteMapping 的使用 |
|---|
| 类型参数类型为 RouteMapping 的 com.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
静态路由 |
| 返回 RouteMapping 的 com.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 并返回路由信息 |
| 参数类型为 RouteMapping 的 com.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)
返回请求与匹配的路由的权重. |
| 类型变量类型为 RouteMapping 的 com.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 |
|
||||||||||
| 上一个 下一个 | 框架 无框架 | |||||||||