com.bastengao.struts2.freeroute
类 DefaultUnknownHandler

java.lang.Object
  继承者 com.bastengao.struts2.freeroute.DefaultUnknownHandler
所有已实现的接口:
com.opensymphony.xwork2.UnknownHandler

public class DefaultUnknownHandler
extends Object
implements com.opensymphony.xwork2.UnknownHandler

默认处理未知的 result 或者 action.

实现此类,主要通过获取 action 动态返回的 result 映射到对应的页面

从以下版本开始:
1.0
作者:
bastengao

字段摘要
private  com.opensymphony.xwork2.config.Configuration configuration
           
private  String contentBase
           
private static org.slf4j.Logger log
           
private  com.opensymphony.xwork2.ObjectFactory objectFactory
           
private  RouteMappingHandler routeMappingHandler
           
 
构造方法摘要
DefaultUnknownHandler(com.opensymphony.xwork2.ObjectFactory objectFactory, com.opensymphony.xwork2.config.Configuration configuration)
           
 
方法摘要
private static Map<String,String> addParamByJSON(com.opensymphony.xwork2.config.entities.ResultConfig.Builder resultBuilder, String resultParam)
           
private static com.opensymphony.xwork2.config.entities.ResultConfig.Builder createResultConfigFromResultType(String resultCode, com.opensymphony.xwork2.config.entities.ResultTypeConfig typeConfig)
          通过 ResultTypeConfig 构造 ResultConfig.Builder
private  com.opensymphony.xwork2.config.entities.ResultConfig findResultConfig(RouteMapping routeMapping, String resultCode, Map<String,com.opensymphony.xwork2.config.entities.ResultTypeConfig> resultTypes)
          找能够处理的 resultType
 com.opensymphony.xwork2.config.entities.ActionConfig handleUnknownAction(String namespace, String actionName)
           
 Object handleUnknownActionMethod(Object action, String methodName)
           
 com.opensymphony.xwork2.Result handleUnknownResult(com.opensymphony.xwork2.ActionContext actionContext, String actionName, com.opensymphony.xwork2.config.entities.ActionConfig actionConfig, String resultCode)
          因为 actionConfig 只配置了 action name 与 method, 没有配置 result, 所以任何一个 freeroute 的 action 执行完返回 的 resultCode 都是 unknown result, 都会执行以下方法.
private static boolean isJSONObject(String param)
          测试是否是 json 参数
private static String parsePath(String globalContentBase, RouteMapping routeMapping, String originPath)
          解析路径 区分相对路径还是绝对路径。
private  com.opensymphony.xwork2.config.entities.ResultConfig parseResultCodeToResultConfig(com.opensymphony.xwork2.config.entities.ActionConfig actionConfig, String resultCode, RouteMapping routeMapping)
          解析 resultCode 为 ResultConfig, 如果无法解析则返回 null
static String parseResultType(String resultCode)
          解析返回类型。
private  void setContentBase(String contentBase)
           
private  void setRouteMappingHandler(RouteMappingHandler routeMappingHandler)
           
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

log

private static final org.slf4j.Logger log

objectFactory

private com.opensymphony.xwork2.ObjectFactory objectFactory

configuration

private com.opensymphony.xwork2.config.Configuration configuration

routeMappingHandler

private RouteMappingHandler routeMappingHandler

contentBase

private String contentBase
构造方法详细信息

DefaultUnknownHandler

public DefaultUnknownHandler(com.opensymphony.xwork2.ObjectFactory objectFactory,
                             com.opensymphony.xwork2.config.Configuration configuration)
方法详细信息

setContentBase

private void setContentBase(String contentBase)

setRouteMappingHandler

private void setRouteMappingHandler(RouteMappingHandler routeMappingHandler)

handleUnknownAction

public com.opensymphony.xwork2.config.entities.ActionConfig handleUnknownAction(String namespace,
                                                                                String actionName)
                                                                         throws com.opensymphony.xwork2.XWorkException
指定者:
接口 com.opensymphony.xwork2.UnknownHandler 中的 handleUnknownAction
抛出:
com.opensymphony.xwork2.XWorkException

handleUnknownResult

public com.opensymphony.xwork2.Result handleUnknownResult(com.opensymphony.xwork2.ActionContext actionContext,
                                                          String actionName,
                                                          com.opensymphony.xwork2.config.entities.ActionConfig actionConfig,
                                                          String resultCode)
                                                   throws com.opensymphony.xwork2.XWorkException
因为 actionConfig 只配置了 action name 与 method, 没有配置 result, 所以任何一个 freeroute 的 action 执行完返回 的 resultCode 都是 unknown result, 都会执行以下方法.

指定者:
接口 com.opensymphony.xwork2.UnknownHandler 中的 handleUnknownResult
参数:
actionContext -
actionName -
actionConfig -
resultCode -
返回:
抛出:
com.opensymphony.xwork2.XWorkException

handleUnknownActionMethod

public Object handleUnknownActionMethod(Object action,
                                        String methodName)
                                 throws NoSuchMethodException
指定者:
接口 com.opensymphony.xwork2.UnknownHandler 中的 handleUnknownActionMethod
抛出:
NoSuchMethodException

parseResultCodeToResultConfig

private com.opensymphony.xwork2.config.entities.ResultConfig parseResultCodeToResultConfig(com.opensymphony.xwork2.config.entities.ActionConfig actionConfig,
                                                                                           String resultCode,
                                                                                           RouteMapping routeMapping)
解析 resultCode 为 ResultConfig, 如果无法解析则返回 null

参数:
actionConfig -
resultCode -
routeMapping -
返回:

findResultConfig

private com.opensymphony.xwork2.config.entities.ResultConfig findResultConfig(RouteMapping routeMapping,
                                                                              String resultCode,
                                                                              Map<String,com.opensymphony.xwork2.config.entities.ResultTypeConfig> resultTypes)
找能够处理的 resultType

参数:
routeMapping -
resultCode -
resultTypes -
返回:

createResultConfigFromResultType

private static com.opensymphony.xwork2.config.entities.ResultConfig.Builder createResultConfigFromResultType(String resultCode,
                                                                                                             com.opensymphony.xwork2.config.entities.ResultTypeConfig typeConfig)
通过 ResultTypeConfig 构造 ResultConfig.Builder

参数:
resultCode -
typeConfig -
返回:

parseResultType

public static String parseResultType(String resultCode)
解析返回类型。如果没有 ":" 则返回全部; 如果有 ":" 则返回 ":" 前面部分。

参数:
resultCode -
返回:

parsePath

private static String parsePath(String globalContentBase,
                                RouteMapping routeMapping,
                                String originPath)
解析路径 区分相对路径还是绝对路径。如果是绝对路径则不需要转换。

如果是相对路径那么则将其转化为绝对路径。转化时优先使用 @ContentBase,然后 contentBase, 如果前两个都不满足则直接转换为绝对路径

参数:
globalContentBase -
routeMapping -
originPath -
返回:

isJSONObject

private static boolean isJSONObject(String param)
测试是否是 json 参数

参数:
param -
返回:

addParamByJSON

private static Map<String,String> addParamByJSON(com.opensymphony.xwork2.config.entities.ResultConfig.Builder resultBuilder,
                                                 String resultParam)


Copyright © 2013 bastengao. All Rights Reserved.