您的位置:首页 > 其它

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。







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: