OracleOAF_OAF Framework页面分析(概念)

(2).
OAPageBean在具备结构树中的bean上调用processFormDate(OAPageContext,OAWebBean),将form中的数据写入module(它调用pageLayout
region上的processFormData,

注意:这么些共享的REGION在引用它的页面中是不可能改改的,所以在Jdeveloper的Structure面板中的草地绿的。

您建立的多数实体都应当是oracle.apps.fnd.framework.server.OAEntityImpl的子类。

Oracle 15、 Web
bean 架构

(3). 
假如在实践processFormData()进度中尚没有差距常,OAPageBean调用全数的bean上的processFormRequest(OAPageContext,OAWebBean)方法,如下面所讲。

(2).
Oracle.apps.fnd.framework.webui.OAWebBeanConstants:

下图展现了二个粗略页面包车型客车WEB
BEAN呈现效果,你见到的页面包车型地铁价签指明了WEB BEAN的名字。

概念了独具的web
bean的做为容器的特点。如:全部的布局web
bean都完毕这么些接口。唯有完成了这么些接口的bean才能够提到到控制器。

b. 一些错综复杂的web
bean(如:oracle.apps.fnd.framework.webui.beans.table.OATableBean和oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean)执行post控制器执行prepareForRendering()方法。

 

如:区别于此外行为,它定义了processRequest,processFormData和processFormRequest方法,那个办法都在分裂的bean中有落到实处。

席卷了成立和操作OAF
html用户界面包车型大巴骨干类。

当浏览器提交一个FO劲客M(如:用户挑选了搜索区的GO按钮),如有须要,OAF重新创立WEBBEAN结构(BEAN结构在乞求之间是缓存了的,唯有在意想不到的图景下须要再行建立),然后调用你在PAGEBEAN中写的处理事件的代码。当页面处理完成,HTML页面重新树立并发送到浏览器。

6.
oracle.apps.fnd.framework.webui.include

 

(2).
属性对应实体对象的性质(用于插入、更新、删除实体对象)

 

3.
oracle.apps.fnd.framework.webui

借使想结合页面中的共享对象,你能够简单的存续它们

包含能够显得错误、警告或音讯的HTML
FO奔驰G级M控件。如用户在二个文本框中输入了不当的值,三个谬误图标会突显在它的题目下边。你应当在编写用户界面控制器时选取那么些类。

  1. OAPageContext

 

  1. 处理GET请求

包含从model和用户界面或视图代码中可以安全访问的类和接口。

就此每种web
bean教递归的调用了它的子类的processFormData)。写入form数据到model自动的调用了属性级和实体级的证实。假如您抛出别样阐明格外,执行会停下并呈现错误消息。

你应当在编写制定用户界面控制器时选用那些类。

(1).
若是五个页面在二个业务中,它们应该共享多少个root application
module。

瞩目:Entity
Object也能够依照视图、同义词和快速照相。

各类REGION和ITEM都得以利用性质集来继承一组属性,三个属性集是因此命名可选择的性质的成团,它能够被任何UI对象使用,包涵region\item和任何属性集。

你应该运用oracle
application菜单和效劳的表单中定义菜单。

Oracle 23.
视图

processFormRequest(OAPageContext pageContext, OAWebBean webBean){  if (pageContext.getParameter("CreateButton") != null)  { 
  // The user pressed the "Create Supplier" button, now perform a JSP forward to 
  // the "Create Supplier" page.
  pageContext.setForwardURL("OA.jsp?page=/oracle/apps/dem/employee/webui/EmpDetailsPG",  
                            null,   
                            OAWebBeanConstants.KEEP_MENU_CONTEXT, 
                            null,  null,  
                            true, // Retain AMOAWebBeanConstants.ADD_BREAD_CRUMB_YES, // Show breadcrumbsOAWebBeanConstants.IGNORE_MESSAGES); } } 

一对常用的类和接口包含:

  1. View
    Link(视图连接)

小心:如你在付出指南开中学的见的,建立REGION和item申明比编制程序更可取。实际上,你应该只在无法用申明的法门来树立的时候才使用编制程序的章程,那样客户就能客户化你的页面了。

这一个类是用来被客户端用户界面(不只是OAF的html页面)使用的,它不该一贯引用oracle.apps.fnd.framework.webui包和子包中的类和接口,大概别的利用钦点的WEBUI包和子包。

8.
oracle.apps.fnd.framework.webui.beans.message

如:假使您定义了二个STYLE为table的REGION,OAF会用oracle.apps.fnd.framework.webui.beans.table.OATablebean来实例化。

  1. 数据源绑定

数据绑定值使用完毕上下文提供的那个新闻来打听数据源,并赶回实际的值,所以它亦可生成对应的HTML。

包涵了无法符合各种变化bean子包的用户界面组件类(如:图像、静态的公文、键弹性域、表达性弹性域)。

专注:要完全正确和千篇一律,本图需包涵以下的落到实处

(4). 如若没有JSP
FOCR-VWA奥迪Q7D恐怕重定向,或许在processFormRequest()方法中从未非常,则页面被刷新。

如:在OAF的ToolBox示例中,大家建立了四个通用的REGION(叫PoSummary本田UR-VN),所以那么些组件能够被三个页面包涵而不用重写代码。

当页面实现时,UIX架构处理web
bean结构来生成html。

当您在Jdeveloper中树立页面时,OAF自动的为那四个包中的组件实例化message
bean。你应有只在上面包车型大巴景观中运用那一个包中的类:

警告:不要在model代码中调用那么些包中的类。

提个醒:不要在控制器和视图对象中调用这几个包中的类。

随便曾几何时你建立多少个运用属性集的UI组件,你都能够覆盖它的接轨的性质(即使那在OAF中是不推荐的)。

其一历程让您的控制器对用户的动作作出响应。

在数据库和实业之间是极度的关联,全体的ORACLE
Applicaiotn 实体都应当包涵它们关联的表的全部列。

对每3个带有UI控制器的BEAN,OAF调用你写的代码来起头化页面。

 

(1). OAController

  1. 概念页面流

(3).
倘使要求实践NLS操作,如转换服务器时间格式为用户时间格式,访问oracle.apps.fnd.framework.OANLSServices对象

如:假若你在页面中要访问3个root
application
module,你要运用oracle.apps.fnd.framework.OAApplicationModule接口(你永远不会访问贰个客户端的完毕)。

如:假若用户按了一个叫“GoButton”的按钮,你能够在Jdeveloper在写以下的控制器代码:

实体可以被其余供给与表交互的顺序采用(不仅是OAF),那样一来,就亟须考虑到持有的注脚规则以便客户端就不用再关注这几个了。

只怕最关键是,那是2个您用来因而getParameter(String)方法来读取请数据的类(请求包罗UPAJEROL中的参数,假使是POST,任何的名称值和事件都涉嫌到用户的动作)。

控制器可以提到到视图的REGION级别,(很多气象下,任何的OAF
web
bean达成了oracle.apps.fnd.framework.webui.beans.OAWebBeanContainer接口,能够提到到控制器)。

每一种web
bean都维护它和谐以下的音讯:

当浏览器为您的页面发表3个OA.jsp请求时:

(1).
ITEM是2个不难的零部件,如按钮、输入框、图下等不包括子成分的机件。

a. 每一种web
bean实例化它的控制器(假若局地话)并且调用控制器上的processRequest(OAPageContext,OAWebBean),

 

 

  1. Association
    Objects(关联实体)

如:假设三个SuppliersVO视图对象由页面中的root
application
module通过“MySupVO”来调用,则在此间您应当钦点MySupVO那些名字。

OAF支持JAVA和PLSQL实体。

各样OAF web
bean也促成了一组接口,这一个接口定义了OAF加到UIX bean中的行为。

持有的视图对象都以oracle.apps.fnd.framework.server.OAViewObjectImpl的子类。

归纳了在mvc架构中得以实现model的类的接口

  1. 数据绑定值

_indexedChildren 子web bean

 

 

你能够定义弱连接(2个定单引用了一度存在的供应商)和强连接(二个定单包涵它的行,行不能够独立于头存在)。

(1). 二个类没有message
bean(如:OASubmitButtonBean只在这么些包中存在)


包含OAF页面包车型大巴布局web
bean。包罗特定的布局如hide/show,容器,列表,头,标准的单列或双列模板等。你应该在编辑用户界面控制器时行使那么些类。

(2).
oracle.apps.fnd.framework.webui.OAPageBean将web
bean结构交给uix并发送到浏览器。

5.
oracle.apps.fnd.framework.webui.beans.form

实际上OAPageContext被交给你的各种控制器的推行办法,在底下的任务中您将利用OAPageContext:

其实际情形况下,这几个包也囊括:

席卷了表格和树表格的web
bean。它能够以表格的款型呈现数据。你应该在编写制定用户界面控制器时利用那几个类。

 

(2). 截取和拍卖用户事件如按下按钮

(2).
为树立下拉列表建立查询,值列表和其他的界面组件。

当浏览器请求一个新页面时,OAF读取页面中的注解的元数据来确立WEB
BEAN的组织。

11.
oracle.apps.fnd.framework.webui.laf

你可以编写代码用来:

(1).
属性对应SQL语句的列(平日用于较小、只读的视图对象)

为了印证这点,在运用开发中,每一个表格必须为他的每一列关联到属性集,这个属性集如提示标签、显示上涨幅度等。

Oracle 3二、模型

(4).
全数的页面必须带有3个顶层的REGION(叫做root
region),它的STYLE是pageLayout,它是oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean的实例。

1.
oracle.apps.fnd.framework

在中间层,OAF页面实际是由内存中的JAVABEAN结构来促成的,和观念的JAVA客户端界面相同。

(2).
用户的SESSION被表明,若是不算,呈现登录的页面。

 

本条application module
也从连接池中取出JDBC连接,然后这一个页面的事务处理的上下文就分明了。

  1. OADBTransaction

正像OAF将定义的UI布局翻译成运营时的BEAN结构,它也暗含了菜单定义的WEB
BEAN。

拍卖多页面事务流时,OAF提供了多个可定义的(可客户化)给复杂的、硬编码的主宰逻辑。

在简易的动静下,三个BC4J视图对象封装了2个数据库查询。查询执行后,多个视图对象循环访问结果集。结果集带有贰个或八个视图行,一个视图行的不一样性质对应数据库查询的行。

 

犹如模型中的OADBTransaction,OAPageContext提供了走访servlet
session级其他oracle应用上下文音讯,如用户名、id、当前职务等。如上边代码呈现怎么得到用户名;

我们得以为那么些表定义3个实体对象(SupplierEO),用来落到实处的持有的生意规则,新建、更新、删除二个供应商。

BC4J实体封装了涉及到数量表行的商务规则(验证、动作等)。如:OAF萨姆ple
Library包括了FWK_TBX_SUPPLIE宝马7系S表,用来囤积供应商的定义。

席卷OAF中用户界面包车型地铁扩充web
bean(servlet\jsp\html)。

还要一向容纳了您建立的拥有实体对象(视图对象由root
application
module容纳,并在视图行中援引了实体对象)。你将在你的模型中健康使用OADBTransaction,基于以下原因:

只顾:上面图中的ITEM名称没有依据ORACLE应用命名标准来做,只是让您领悟WEB
BEAN的构造。

(1). 建立callable
statement来执行PLSQL函数的经过。

视图用来为用户格式化和突显模型数据。

(3).
你定义的每一种REGION和ITEM都有3个STYLE属性,用来指明OAF在运作时使用哪个WEB
EBAN对象来为它实例化(这会指明发生什么要瓣HTML代码),

 

提示:对于页面中的分歧的WEB
BEAN(按钮、输入框等),传到getParameter()的名称值都通过你在页面中定义的ID来分配。

Oracle 44、控制器

警戒:不要在model代码中调用这么些包中的类。

 

Oracle 5

4.
oracle.apps.fnd.framework.webui.beans

(2).
如若二个页面和任何页面没关系,它应有有投机的application module。

你建立的全数的控制器都应该为oracle.apps.fnd.framework.webui.OAControllerImpl的子类。

 

当OAF接收到一个OA.jsp请求,OAPageBean建立三个oracle.apps.fnd.framework.webui.OAPageContext,这些类只在页面处理进度中才存在。

2.
oracle.apps.fnd.framwwork.server


_namedChildren UIX钦赐的子web
bean

  1. 客户化页面

c. 每一个web
bean都调用它的子类的processRequest()方法。

当页面执行完成,OAF将WEBBEAN结构交给UIX框架来拍卖,它能将之转为HTML发送到浏览器。

在OAF中,在底下的情事下会用到视图对象。


警示:不要在model代码中调用那几个包中的类。

包含了足以决定HTML外观(包涵页面风格)和上下文行为的工具。

小心:OAF类总是为您在Jdeveloper中宣示的MDS实例化。

(3).
一些质量对应到实体,一些性质直接对应SQL(用来升高实体对象的无法从实体对象查询的近来数据,如出示的总括值)。

转载: c1275671283 –
http://shaofeng.blog.51cto.com/3392077/655665

9.
造访应用上下文音信

 

  1. 概念菜单

Oracle 6

 

 

对于有数据库交互(插入、更新、删除、查询)的BEAN,你还要钦赐一个数据源绑定到一个视图实例和涉及的视图属性名称。这一个绑定卓殊重庆大学,因为OAF用它来询问数据、写回用户输入的多寡。

(2).
访问session级其余施用上下文,如用户名、id、当前任务等。

警告:不要在model代码中调用那几个包中的类。

(5). OAWebBean<Type>:

 

 

在那种情景下,root application
module能够访问它所嵌套的富有的多寡、对象和富有的ROOT包蕴的加入同3个事务的子对象。你能够在您想创建重用的与数据库交互的UI
region时选用那性情子。

当浏览器发送四个POST请求到服务器

对于一个加以的习性,如:完成上下文知道哪位视图对象、视图属性和当前行是怎么着。

如:3个下拉列表是oracle.apps.fnd.framework.webui.beans.message.OAMessageChoiceBean的实例,多个提交按钮是oracle.apps.fnd.framework.webui.beans.form.OASubmitButtonbean的实例。

  1. View Objects(and view
    Links)视图对象和视图连接

包罗了用户界面导航的机件(连接、树、菜单、火速连接等。)你应有在编写制定用户界面控制器时利用这么些类。

在陈设时,你能够采取证明的方法来建立BEAN的结构。在oracle开发进度中,你将对XML文件实行定义。当你布署到客户站点时,OAF从数据库中运作页面定义。

 

(1). View Instance
Name指的是在application
module中的视图对象(全部的视图对象都存活于application
module中并经过它们的称号来调用),

概念了有着的WEB
BEAN的通用的着力的作为。

您应当在编辑用户界面包车型大巴急需编程的控制器的时候利用那些类。

Thanks and Regards

 

(3).
以下子包中的在bean中的全数类

 

  1. 组件重用

(2). 你不须求选择message bean

对别的web
bean属性,当将它交给贰个落到实处上下文(实现上下文是UIX须要处理绑定数据的享有的音信)时,UIX调它的getAttributeValue()方法。

就像连接实体对象一样,你也得以创设视图对象的关联,那称之为视图连接。如:你在购置定单头视图对象和行视图对象之间建立了二个视图连接,那足以用来在访问头的时候自动查询行。

如上海体育场所所示:OADBTransaction在您的模子中的1个骨干剧中人物,它包裹了JDBC的数据库连接会话和root
application module的涉嫌。

你应当在编写2个用户界面控制器的时候使用这一个类。

 

root application
module能够访问OADBTransaction。

(3).
为生意逻辑建立可行的“验证查询”。如:在购销定单头实体对象中,你或者要采用一个证实视图对象来获得这几个购销定单的最大行号,以便于它能够被缓存而在新行插入时得以增添。

OAPageContext缓存了二个对root application
module的引用,它提供了拜访它的视图对象和工作。

 

小心:三个root application
module或许嵌套四个application module(也能够再嵌套多层)。

(2).你用来国际化操作的类:OANLSServices

 

 

20150506 Created By BaoXinjian

 

各种视图对象都足以配备用以下的艺术来询问数据:

 

  1. 内部bean结构
  1. Entity
    Objects(和Association Objects)实体和关系实体

作为不是上海教室所示的情况,OAF web
bean属性实际当做数据绑定值来兑现。

 

提个醒:不要在model代码中调用那一个包中的类。

概念了通用的客户化定义和数据源管理行为。

 

每一个页面中的用户界面(UI)组件(按钮、标签、图片等)实际都对应多少个或多少个结构中的JAVABEAN。

processFormRequest(OAPageContext pageContext, OAWebBean webBean)  {  
   if (pageContext.getParameter("GoButton") != null)  
   {  // The user pressed the "Go" button, do something...  } 
} 

(2).
OAPageContext

概念了在OAF上下文中的bean中原本的作为。

(1). 你恐怕要抛出的装有的要命

(1).
在OAF的ToolBox示例中,有一个购买销售定单表(FWK_TBX_PO_HEADERS),HEADER_ID是NUMBEXC60类型的主键,也作为购买定单号展现。

 

processFormRequest(OAPageContext pageContext, OAWebBean webBean) {  
   OAApplicationModule am =   (OAApplicationModule)pageContext.getRootApplicationModule();
} 

 

  1. 处理POST请求

 

  1. 拍卖请求

(1).
OAPageBean调用页面的顶层pageLayout的bean的processRequest()方法,整个WEB
BEAN结构被递归的推行来早先化WEB BEAN(包罗其它关系的模子组件):

警告:不要在model代码中调用这些包中的类。

 

oracle.apps.fnd.framework.server.OADBTransactionImpl而不是oracle.apps.fnd.framework.OADBTransaction接口。

最终,你大概不只必要定义视图对象,还也许要为它们编写代码。典型气象下,代码应该完结复杂的询问的多寡绑定并施行查询(所以视图对象掌握什么样询问它本人)。

  1. 概念页面
processRequest(OAPageContext pageContext, OAWebBean webBean){   
  String userName = pageContext.getUserName();
}

8.
导航介绍

当建立2个OAF应用模型时,你应该运用那个包中的类而不是它们的接轨的类。

席卷了html form的组件的web
bean类,包含提交按钮和输入组件(多选框、单选框、文本框等)。

Oracle 71.
页面基础

 


如上海教室所示,OAPageContext同时引述了request和root
applications mudule。

在视图和控制器中动用的一组常量。

(3).
Oracle.apps.fnd.framework..webui.beans.OAWebBeanData:

(1).
oracle.apps.fnd.framework.webui.OAPageBean(主要的OAF页面处理类)使用页面名称来决定必要哪些root
application module,然后从application module池中取出。

在浏览器层,OAF页面和别的页面一样,是正规的HTML页面。

地点所说的八个首要措施(processRequest(),processFormData()和processFormRequest())都有1个OAPageContext参数,你编写的别样控制器总是要运用那一个重庆大学的类。

趣味是值由特定的在运作时处理组件的数据源提供。

(1).
在运作时操作和起初化(包蕴可编制程序的你无法以宣称的办法建立的布局)

(3).
假如用户是有效的,OAPageBean评估请求参数来明确当做HTTP
POST或GET来拍卖。

 

  1. Oracle,访问root application
    module

(4).
当大家建立2个页面包涵购买定单的order number
这一个ITEM时,大家也理应钦赐属性集为/oracle/apps/fnd/framework/toolbox/attributessets/FwkTbxheaders/Headerid

如:借使你的SuppliersVO有1个性质“SupplierId”(映射到列SUPPLIEPRADO_ID),这里您应有钦定“SupplierId”这些名称。

(2).
REGION是归纳ITEM的容器。如:header、表格或特定的布局组件。

10.
oracle.apps.fnd.framework.webui.beans.table

这是三个您用来确立、修改你的页面布局,设置web
bean属性和进行手工业的数量伊始化的措施(如当你打开页面时你恐怕要实践三个自行查询)。

若是您有1个繁杂的实体(如三层购买销售定单,在头、行、发运地在此之前是一对多的关联),你能够利用association
object来定义实体间的涉嫌,

您能够在控制器中贯彻WEB
BEAN的功用。

(3). HeaderId属性设置Prompt为 Order
Number,Display Length为15。

留神:对于众多以此包中的web
bean,有一些变量在oracle.apps.fnd.framework,webui.message包中(那些message
web bean能够来得错误、音讯、警告的图标和认证音讯,而那一个包中web
bean不可能)。

  1. 不无的WEB
    BEAN继承了UIX架构中的相应的bean。

依然POST是由一个对话框发出的),那就再一次建立web
bean的结构,像上边执行GET时一致。

实体使用评释来在它们的性质和钦定的数据列之间映射,来自动完毕查询、插入、更新和删除。大部分景色下,你须求添加验证逻辑。

这一个包中的类和它子包中的类对应到它们贯彻的uix组件,如下表。当建立OAF应用页面时,你应该总是利用OAF类除非您想选取八个总结在UIX中而OAF不帮助的新特征。

 

_attributes web
bean的特点(描述性属性),如下图所示

所有的APPLICATION
MODULE都是oracle.apps.fnd.framework.server.OAApplicationModuleImpl的子类。

9.
oracle.apps.fnd.framework.webui.beans.nav

 

Oracle 86、oracle.apps.fnd.framework

(2). View Attribute Name
指的是炫耀到列的视图属性。

(5).
在Jdeveoper的页面树中的REGION和ITEM的顺序指明了在运营时添加BEAN结构的任务。

专注:这一个包中的很多类了总结在oracle.apps.fnd.framework.webui.beans.form包中,但从不出示图标和新闻的效力。

当浏览器向服务器发送1个GET页面的央浼时(大概你手工业的FOSportageWALX570D),OAF使用可注解的UI定义来确立web
bean结构

1.
控制器是用来响应用户的动作和定向应用的流向的。

  1. 做客请求参数

如:OATableBean实现了oracle.apps.fnd.framework.webui.beans.OAWebBeanTable接口。

(1).
为详细的用户界面显得最优化的数目。假设用户界面帮忙实体对象的插入、更新、删除,你应有利用视图对象来实现这几个职分。

为了简单表达,Jdeveoper定义的页面由REGION和ITEM组成。

要添加多少个region到页面,大家只要不难的创造二个新的region,将Extends属性设为:/oracle/apps/fnd/framework/toolbox/tutorial/webui/PoSummary凯雷德N

(1). OAPageBean检查看web
bean是或不是存在于内部存款和储蓄器中,如若没有(也许因为能源被重复协会了,用户按了后退按钮,

本条包也席卷了中央的被全部的WEB
BEAN达成的OAF接口。

您使用这些类的方式来报告OAF执行八个JSP
forward。如:

  1. Attribute Sets
    属性集

1个BC4J应用模型是管理和提供BC4J模型对象的功底容器,在这一个上下文中,同一职务的目的是由多方关系的。例如:全部的BC4J对象都富含2个等同职分的政工。甚至用户界面包括多少个页面。

 

警告:不要在model代码中调用那些包中的类。

提个醒:不要在model代码中调用这些包中的类。

  1. Application
    Modules

若是供给访问application mudule:

(1).
Oracle.apps.fnd.framework.webui.beans.OAWebBean

  1. 实现

OAF也包蕴了三个可定义的客户化架构,叫做:OA
Personalization
Framework。那是为了援助最终用户所需的客户化和成品传输链(区域化和垂直化(没懂什么看头)等)。

1.
模型封装了内定的运用中的数据和商业贸易逻辑。它也提供了实事求是的经济贸易对象和商务服务的悬空。

7.
oracle.apps.fnd.framework.webui.beans.layout

每三个OAF页面都有一个涉嫌到顶层REGION(pageLayout
region)的ROOT application module。这些root application
module提供了事务处理的上下文,封闭了数据库的总是。

(4).
Oracle.apps.fnd.framework.webui.beans.OAWebBeanContainer:

如一个OATableBean继承了oracle.cabo.ui.beans.table.TableBean。

(2).
那个表格有二个涉嫌的属性集:FwkTbxHeaders,是多少个XML包文件,里面蕴涵了装有的表列的性质(每一列五脾品质)。其中2天性质叫做HeaderId。

相关文章