【仅供内部供应商使用,不提供对外解答和培训】
...
该接口主要用于配合WebService接口,对具体的服务请求进行分发处理。该分发器一共有4个方法可以调用,但是插件开发中用得到的绝大多数情况下只有其中的3种。分发的所有请求必须是报表请求(view接口,对具体的服务请求进行分发处理。分发的所有请求必须是报表请求(view/report或view/form),且包含参数 op 和 cmd
上层的分发器通过op参数找到具体的WebService,然后根据cmd参数把请求分发到具体的Action类处理。
该分发器一共有4个方法可以调用,但是插件开发中用得到的绝大多数情况下只有其中的3种。
Code Block | ||||
---|---|---|---|---|
| ||||
RequestCMDReceiver [] actions = new RequestCMDReceiver[]{
new ActionA(),
new ActionB()
}
//第一种分发方式,也是最常用的一种方式。这种方式会传入sessionID,主要用于需要根据sessionID获取到当前的报表,根据报表进一步的处理的场景
WebActionsDispatcher.dealForActionCMD( request, response, sessionID, actions); |
Code Block | ||||
---|---|---|---|---|
| ||||
RequestCMDReceiver [] actions = new RequestCMDReceiver[]{
new ActionA(),
new ActionB()
}
//第二种分发方式,功能跟第一种差不多,但主要是用于产品内部兼容一些历史原因导致的没有实现cmd的请求的规范处理。【主要是兼容用,插件里面也很少用】
WebActionsDispatcher.dealForActionDefaultCmd( request, response, sessionID, actions, "cmdA"); |
Code Block | ||||
---|---|---|---|---|
| ||||
ActionNoSessionCMD [] actions = new ActionNoSessionCMD[]{
new ActionA(),
new ActionB()
}
//第三种分发方式,调用具体的Action时不会带入sessionID,主要用于报表访问时的一些公共信息的加载。(在8.0/9.0中主要用于决策平台的请求扩展)
WebActionsDispatcher.dealForActionNoSessionIDCMD( request, response, actions); |
配合使用的服务接口介绍:com.fr.stable.fun.Service
配合使用的请求接口介绍:
com.fr.web.core.ActionCMDActionNoSessionCMD
com.fr.stable.web.RequestCMDReceiver
...