ADF入门帮助

上传人:飞*** 文档编号:53957467 上传时间:2018-09-06 格式:PDF 页数:17 大小:179.10KB
返回 下载 相关 举报
ADF入门帮助_第1页
第1页 / 共17页
ADF入门帮助_第2页
第2页 / 共17页
ADF入门帮助_第3页
第3页 / 共17页
ADF入门帮助_第4页
第4页 / 共17页
ADF入门帮助_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《ADF入门帮助》由会员分享,可在线阅读,更多相关《ADF入门帮助(17页珍藏版)》请在金锄头文库上搜索。

1、本文是由英文帮助翻译所得:1task flows“ 任务流task flows”可以包括非可视化的组件,比如方法调用。“ 页片段page fragment”可以运行在一个页面的某个局部区域,最大限度地提高复用性。ADF Task Flow是在 JSF Controller的基础上扩展而来的,它除了包括View Activities和导航规则之外,还可以包括method calls等非可视化Activity。ADF Task Flow分为两种: Bounded task flow和 Unbounded task flow 1 、Bounded task flow(1) 、作为局部、分支的页面流程

2、。(2) 、有一个唯一入口和零到多个出口。(3) 、拥有自己私有的Control flow rules,Activities,Managed bean,Transactions. (4) 、可以重用。2 、Unbounded task flow(1) 、作为顶级的页面流程。(2) 、出口不固定。ADF ManagedBean与 JSF Managed Bean的区别在于, ADF Managed Bean的 Scope比 JSF Managed Bean多了 pageFlowScope、viewScope、backingBeanScope。. pageFlowScope:Managed Bea

3、n在 Task Flow中的所有Page 可见,且访问的同一个实例。如果其它Task flow中 Page 访问该 Managed Bean,将会创建一个新实例,供这个 Task flow中的所有 Page 使用。. viewScope:只在当前这个view(可能是 root browser window,也可能是region)可见,当 viewId发生改变后,该Managed Bean被释放掉。. backingBeanScope:一个 Page 中含有一个Task Flow,并且这个Task flow使用了多个 region,设置此值可以起到隔离各个region的作用 ( 会在每个 reg

4、ion中创建一个实例) ,避免数据冲突。2 布局为了使组件能够自适应浏览器窗口大小,首先需要放置根一级的可伸缩的布局组件。以下组件可以根据父容器的大小自动伸缩(加星号的还可以伸缩其子组件) :. * Decorative Box . Panel Accordion . Panel Box (当 type=“stretch“或 “default“). Panel Collection . Panel Dashboard . Panel Group Layout (当 layout=“scroll“或“vertical“). * Panel Spliter . * Panel Stretch La

5、yout . Panel Tabbed 对于这些组件,不要设置其宽度、高度的百分比,设置了反而不好。以下组件不能根据父容器的大小自动伸缩:. Panel Border Layout . Panel Box (当 type=“flow“或“vertical“). Panel Form Layout . Panel Group Layout (当 layout=“default“或“horizontal“). Panel Header . Panel Label and Message . Panel List 如果你必须使用一个不能自动伸缩的容器,但又想达到自动伸缩的效果,可以为该容器套上一个可

6、以自动伸缩的容器,如Panel Group Layout(当 layout=“scroll“或“vertical“)。最佳实践: (1) 、布局时,根容器要可以自动伸缩。(2) 、无法伸缩的容器,可以考虑外套一个 Panel Group Layout(当 layout=“scroll“或“vertical“)。3eo的自定义属性为 Entity Object增加 Transient Attribute,比如自动计算订单总价:单价* 数量。(1) 、因为是Transient Attribute,所以不要选择Persistent。(2) 、在 View Object中增加该Attribute。(3

7、) 、设置重新计算的条件:Always-每次都重新计算;Never-只在创建时计算一次;Based on the following expression-根据表达式返回值(True or false)来计算是否重新计算。为 Entity Object增加 Association,比如订单项目中的产品与产品关系。(1) 、Association命名规则是 FKAssoc。(2) 、搞清楚一对多的关系中,谁是一、谁是多。4vo添加 View Link为 View Object增加 View Link,比如订单项目中的产品与产品关系。View Object是对 Entity Object的查询结果

8、,结果包括Entity Object的全部或部分属性。一般来说, 一个 View Object对应一个 Entity Object。当然,你也可以完全根据SQL语句自定义一个View Object。 View Link表明的是两个View Object之间的关系,一个View Link对应一个Association。(1) 、View Link命名规则也是FkLink。(2) 、同样,也要搞清楚一对多的关系中,谁是一、谁是多。5am添加 Data Model为 Application Module增加 Data Model。View Object表明数据被访问的方式。客户端通过访问View O

9、bject而访问 Data Model。Data Model保存在 Application Module中。 Application Module是一种类型的业务服务,其它类型的业务服务有Web Service、 EJB。在 Data Model中, View Object所带的数字 “1”、 “2”、 “3” ,表明这是该View Object的第几个实例。6LOVADF BC特色功能之一:级联式下拉列表在实际应用中, 经常会使用两个级联式下拉列表的情况,比如先选择国家列表,在根据选择的国家显示城市列表。 你可以把View Object某个 Attribute定义成 LoVs(全称: Lis

10、t of Values )。这样,由于是定义在模型层上,UI 界面无需做任何改动。7ADF BC特色功能之二:强大的自动计算与验证功能1、通过新建Transient Attribute来实现自动计算。2、验证 Foreign Keys:Key Exists。LOVs 可以限制用户只能从已有的外键中选择,但有时界面要求使用文本输入框,而不是下拉列表,这时候就需要使用Key Exists来验证用户输入的外键是否正确。并且,Key Exists可以让我们在程序中使用该功能,不通过界面。LOVs 是定义在 View Object上的,而 Key Exists是定义在 Entity Object上的。3

11、、约束性条件依赖:Compare。某个 Attribute的值与设定值进行比较,为真则满足要求,否则报错。其中可以设定触发条件和触发Attributes。4、使用 Groovy脚本验证。如果脚本中有对象为null ,Groovy不会抛出NullPointerException,而是表达式结果为null ,null 对应的 Boolean值为 false 。8 使用 ADF Faces之一:开发用户界面如何使用其它Project的资源:共享资源如servlet classes,helper classes,images和 templatess,可以通过创建ADF library来为其它Proje

12、ct所共用。9 使用 ADF Task Flows之一:菜单与页面导航一个应用的页面之间的上下级关系就像一棵树。每个节点都是一个页面。一个典型的 ADF 应用由一个或多个unbounded task flow和 bounded task flows组成。创建 unbounded task flow时不要选择 “Create as Bounded Task Flow”,并且以adfc-xxx-config.xml的格式来命名,比如adfc-sale-config.xml。adfc- config.xml是应用默认的unbounded task flow,它应该作为应用的总入口、根节点。10客制化

13、:个性化的一种服务(customize(v),customization(n)表示根据客户的需求进行特别的定制,已满足其需要。 一般用于软件/服务 /加工制造等方面。针对顾客的需求,对一个标准的产品进行改变、用新的部件替换标准的部件、或是在一个标准产品中加入特殊的功能,提供顾客一个更完整的产品组合。个性化:就是非一般大众化的东西。在大众化的基础上增加独特、另类、拥有自己特质的需要,独具一格,别开生面,打造一种与众不同的效果。问题:在ADF 中如何定制ADF 应用?根据行业的不同,客户的不同,需要对ADF 应用做一些定制化操作,ADF 应用的定制化分为两种:(1) 、个性化:允许用户运行时对应用

14、进行定制。(2) 、客制化:允许用户设计时对应用进行定制。无论是那种定制方法,这些定制的内容均不会对已开发完成的应用作出修改,而是存储在MDS (Metadata Service repository)中。 MDS 支持两种方式的实现:文件和数据库。ADF 应用默认使用基于文件的MDS 。基于文件的MDS :选择 Application - Application Properties - RUN - MDS。Directory Content:你可以设置是否在每次执行应用前清空MDS 存储的定制化信息。如何实现用户客制化(Customize)客制化是在设计时,在原有ADF 应用的基础上,增加

15、定制化层,每一层可能对应不同的行业、不同的公司。这样做的好处就是,既能满足不同风格的展现要求,同时又不改变原有应用的基础代码。(1) 、一个 ADF 应用允许设置多个客制化层,如industry层及 site 层。(2) 、每一个客制化层允许具有多个客制化值,如industry层可以具有healthcare和financial等。(3) 、运行时,每一个层只有一个客制化层值有效。(4) 、客制化层的顺序由adfc-config.xml中各个客制化类的顺序决定。实现客制化的具体步骤如下:one 、定义 CustomizationLayerValues.xml。打开文件C:OracleMiddle

16、warejdeveloperjdevCustomizationLayerValues.xml,该文件定义了所有客制化层以及每层的值。two 、创建 customization.properties文件在 Model Project中,新建一个文件customization.properties。该文件表明运行时,每个客制化层设定为哪个值。three 、创建和发布客制化类MDS 使用客制化类来决定应用哪个客制化层,一个客制化类对应一个客制化层,其接口如下:. CacheHint getCacheHint(); 决定 customization的类型,返回值包括ALL_USERS、MULTI_USER、REQUEST 、USER 四种。ALL_USERS : customization为针对某应用全局有效的,通常用于static类型的customization层。MUTI_USER:针对复数用户有效的customization。REQUEST :针对当前请求有效的customization。USER :针对某特定用户有效的customizatio

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号