AM使用指南:如何在Managed Bean中获取AM实例?
2013-03-01 16:53
281 查看
AM是放置服务方法的地方,有时我们需要在Managed Bean中调用这些方法。
要调用这些方法,首先要在Managed Bean中获取AM实例。
这里要用到《ADF工具类:ADFUtil.java
源代码 》。
1. 获取默认的AM实例
如果Model项目中只有一个AM,可以这样获取:
ApplicationModule am = ADFUtils.getDCBindingContainer().getDataControl().getApplicationModule();
2. 获取指定的AM实例
如果Model项目中有多个AM,可以指定名称获取,例如:MyAppModuleDataControl
ApplicationModule am = ADFUtils.getApplicationModuleForDataControl("MyAppModuleDataControl");
MyAppModuleImpl service = (MyAppModuleImpl)am;
调用service上的方法。
3. 获取嵌套的AM实例
如果Model项目中有多个AM,且AM之间有嵌套关系,可以先获取父AM,再Get得到子AM:
ApplicationModule am =
ADFUtils.getApplicationModuleForDataControl("ParentAppModuleDataControl");
ParentAppModuleImpl parentService = (ParentAppModuleImpl)am;
NestedAppModuleImpl nestedService = (NestedAppModuleImpl)parentService .getNestedAppModule1();
调用nestedService上的方法。
4. 通过Configuration对象直接获取的AM实例
如果页面上没有绑定任何DC,也可以通过Configuration直接获取的AM实例。
import oracle.jbo.client.Configuration;
import oracle.jbo.ApplicationModule;
ApplicationModule am = Configuration.createRootApplicationModule("model.AppModule","AppModuleLocal");
AppModuleImpl amImpl = (AppModuleImpl)am;
其中"model.AppModule"指的是AM的package,"AppModuleLocal" 指的是所使用的AM Configuration。
要调用这些方法,首先要在Managed Bean中获取AM实例。
这里要用到《ADF工具类:ADFUtil.java
源代码 》。
1. 获取默认的AM实例
如果Model项目中只有一个AM,可以这样获取:
ApplicationModule am = ADFUtils.getDCBindingContainer().getDataControl().getApplicationModule();
2. 获取指定的AM实例
如果Model项目中有多个AM,可以指定名称获取,例如:MyAppModuleDataControl
ApplicationModule am = ADFUtils.getApplicationModuleForDataControl("MyAppModuleDataControl");
MyAppModuleImpl service = (MyAppModuleImpl)am;
调用service上的方法。
3. 获取嵌套的AM实例
如果Model项目中有多个AM,且AM之间有嵌套关系,可以先获取父AM,再Get得到子AM:
ApplicationModule am =
ADFUtils.getApplicationModuleForDataControl("ParentAppModuleDataControl");
ParentAppModuleImpl parentService = (ParentAppModuleImpl)am;
NestedAppModuleImpl nestedService = (NestedAppModuleImpl)parentService .getNestedAppModule1();
调用nestedService上的方法。
4. 通过Configuration对象直接获取的AM实例
如果页面上没有绑定任何DC,也可以通过Configuration直接获取的AM实例。
import oracle.jbo.client.Configuration;
import oracle.jbo.ApplicationModule;
ApplicationModule am = Configuration.createRootApplicationModule("model.AppModule","AppModuleLocal");
AppModuleImpl amImpl = (AppModuleImpl)am;
其中"model.AppModule"指的是AM的package,"AppModuleLocal" 指的是所使用的AM Configuration。
相关文章推荐
- AM使用指南:如何在Managed Bean中获取AM实例?
- AM使用指南之三:如何在Managed Bean中获取AM实例?
- 通过实例了解如何使用js获取下拉列表框内的值
- 如何:使用字典存储事件实例(C# 编程指南)
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- http如何使用POST,$ajax向provider传递数据并获取数据(以在浏览器上画圆为例)
- 如何使用jquery获取 (滚动条)距离(页面底部)的距离
- 如何使用PHP获取网络上的文件
- [Python系列实用教程]一、Python如何使用urllib2获取网络资源
- 如何使用KeyChain保存和获取UDID
- Python使用urllib2获取网络资源实例讲解
- asp.net如何使用request获取url?asp.net获取url的大操作方法
- 如何使用KeyChain保存和获取UDID
- 实例学正则表达式之三 -- 如何获取URL的中参数值
- 在vb中使用Iphlpapi.dll获取网络信息 第四章 第三节 实例一:网络数据流量图
- Python如何使用urllib2获取网络资源
- unix下的jni使用指南(2)--如何使用GetFieldID和GetMethodID
- C# 如何获取某个类型或类型实例对象的大小
- vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)