2014-06-18 Created By BaoXinjian


上文介绍在OAF按MVC的架构,分为三层,即Model-View-Contorl, 对OAF 的View层的一下基本概念和一些小案例

Page - 页面概述

  • Page的关键属性
  • Item的关键属性

Reusable Components - 可重用组件

  • 控件的继承Extend
  • 控件的共享Shared

Attribute Sets - 控件属性组

  • 通过Item的Attribute Set 属性手工设定
  • 通过attrSet.setAttributeValue() / getAttributeValue()进行代码自动控制

URL Parameters - 链接参数

  • 一种Simplest Possible Expression Language (SPEL) 语法
  • 五种语法结构
    {!Attr}
    {@Attr}
    {$Attr}
    {@@RETURN_TO_MENU}
    {@@RETURN_TO_PORTAL}

Style Sheets - 样式表

  • Item Type 需设定默认CSS的一些关系,以确认CSS的结构

    • Item Type (staticStyledText) -> CSS Class (OraInstructionText)
    • Item Type (text entry fields, checkboxes, poplists and radio buttons) -> CSS Class (OraFieldText)
    • Item Type (messageStyledText) -> CSS Class (OraInstructionText)

Model Interaction - View和Model的整合

  • View 读Model中的数据
  • View 写Model中的数据

二、具体分析


1. Page - 页面概述

一般在创建OAF时,都会创建Page -> Region -Items

1.1 Page 的一些关键属性

  • AM Definition:

    • 作用: 定义所使用的Root Application Model,
    • 例子: oracle.apps.fnd.framework.toolbox.tutorial.server.SearchAM - 页面所使用的是SearchAM,AM中包含了VO, VO关联了SQL和EO,从而限定了该页面所能引用的内容
  • Window Title
    • 作用: Window窗口的标题
  • TitleForm
    • 作用: 页面的标题
  • Help Target
    • 作用: 页面上显示Help Link链接
    • 例子: 设定为true
  • AutoFooter
    • 作用: 页面下的页脚
    • 例子: 设定为True
  • PageLayout Components
    • 作用: 页面中所有的空间, Page中最为复杂的概念,涉及的控件非常多,另文介绍

1.2 Item 的一些关键属性

  • Extends: 是否有所引用的继承类
  • Attribute Set: 是否有所引用的属性组
  • Destination URI: 超级链接属性,定义参数时,使用的语言为SPEL
  • Action Type: 是否存在ActionCSS Class: 是否有所引用的样式表
    • Action Type
    • Event
    • Parameter
  • View instance / View Attribute: 该栏位是否取自数据VO,如果是,定义VO和VO的栏位
  • Admin / User Personalization: 是否启用个性化
  • Inital Value: 初始值

1.3 SPEL语言

OAF 在定义页面URL中的参数或者在Action中参数时,使用的的是SPEL(Simplest Possible Expression Language)语言

比如Action中Parameter引用页面上一个参数:${oa.ViewInstanceName.ViewAttributeName}

2. Reusable Components - 可重用组件

每个种开发语言都会涉及到某些组件的公用性和继承性,

2.1 公用性:

  • Shared Regions
  • Shared Pages
  • Shared Items
  • Shared Logistic

2.2 继承性:

另文介绍

2.3 特殊的例子 - LOV

LOV体现了既有公用性又存在继承性

  • 在定义LOV Region时,需将其定义为public

  • 在Item引用该LOV,必须Extend该LOV

3. Attribute Sets - 控件属性组

3.1 通过Item的Attribute Set 属性手工设定

Oracle 默认的AttributeSet存放位置: /oracle/apps/fnd/attributesets/

3.2 通过attrSet.setAttributeValue() / getAttributeValue()进行代码自动控制

public void processRequest(OAPageContext pageContext, OAWebBean webBean){
 super.processRequest(pageContext, webBean);
 AttributeSet attrSet =
    new AttributeSet(pageContext, "/oracle/apps/fnd/attributesets/Buttons/Create");
 String createPrompt = (String)attrSet.getAttributeValue(pageContext, PROMPT_ATTR);
}

4. URL Parameters - 链接参数

页面在进行超链接传参数时,通URL Parameters进行实现

比如OA.jsp?OAFunc=FWK_TBX_T_PO_PAGE&order={@OrderNum},在下个页面就可以使用OrderNum参数了

这是一种一种Simplest Possible Expression Language (SPEL) 语法

五种语法结构

  • {!Attr}
  • {@Attr}
  • {$Attr}
  • {@@RETURN_TO_MENU}
  • {@@RETURN_TO_PORTAL}

5. Style Sheets - 样式表

Item Type 需设定默认CSS的一些关系,以确认CSS的结构, 从而控制控件的显示方式一致性,输入的Item有输入CSS style,显示的item有显示CSS style,其实就是页面和控件的风格

  • Item Type (staticStyledText) -> CSS Class (OraInstructionText)
  • Item Type (text entry fields, checkboxes, poplists and radio buttons) -> CSS Class (OraFieldText)
  • Item Type (messageStyledText) -> CSS Class (OraInstructionText)

6. Model Interaction - View和Model的整合

6.1 View 读Model中的数据

系统在读数据时,其实就是通过读目前的View Object 中RowImp对应的EO的getAttributeName去实现

下图就比较清楚地的进行了展示

6.2 View 写Model中的数据

系统在写数据时,其实就是通过读目前的View Object 中RowImp对应的EO的setAttributeName去实现

下图就比较清楚地的进行了展示

Thanks and Regards

OAF_架构MVC系列3 - View的概述(概念)的更多相关文章

  1. OAF_架构MVC系列4 - Control的概述(概念)

    2014-06-18 Created By BaoXinjian

  2. OAF_架构MVC系列2 - Model的概述(概念)

    2014-06-22 Created By BaoXinjian

  3. OAF_架构MVC系列1 - MVC的概述(概念)

     2015-04-03 Created By BaoXinjian

  4. mvc项目架构分享系列之架构搭建初步

    mvc项目架构分享系列之架构搭建初步 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 ...

  5. Asp.net mvc项目架构分享系列之架构概览

    Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...

  6. Asp.net mvc项目架构分享系列之架构搭建初步

    copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...

  7. 【ASP.NET MVC系列】详解View

    本篇文章内容属于ASP.NET MVC系列视图篇,主要讲解View,大致内容如下: 1.Views文件夹讲解 2.View种类 3.Razor语法 4.对视图的基本操作 一   Views文件夹 (一 ...

  8. 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)

    lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...

  9. 【ASP.NET MVC系列】浅谈ASP.NET MVC运行过程

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

随机推荐

  1. PHP学习——数据类型

    PHP的数据是存在类型的概念的,弱类型指的是变量可以存储任何类型!一共8种,分别是:整型.浮点型.布尔型.字符串(标量类型) 数组.对象(符合类型) null.资源(特殊类型) 分成三大类: 标量类型 ...

  2. ls命令大全

    ls 命令:15个Linux面试级问题--第一集 [日期:2015-03-12] 来源:Linux社区  作者:GuiltyMan [字体:大 中 小]   注释:'ls'是“list”的意思,重点在 ...

  3. ES questions

    Be Careful of Cardinality Numeric and date fields are indexed in such a way that ranges are efficien ...

  4. JSBinding + SharpKit / 生成JavaScript绑定

    将 UnityEngine 的代码导出到 JavaScript.就可以在 JavaScript 中使用 Unity 的功能. 如何导出? 将需要导出的类添加到 JSBindingSetting.cla ...

  5. 让EDIUS中素材小距离精确移动的教程

    我们在使用EDIUS视频编辑软件编辑视频的时候,发现想要把剪辑好的视频片段做小距离的调整非常的不容易,一不小心手滑就移多了.这个问题是不是很令人烦躁?不过你们看完今天的文章就不会再为这个问题发愁了.本 ...

  6. ABBYY FineReader的快速任务功能如何用

    在使用ABBYY FineReader Pro for Mac OCR文字识别软件处理文档时,经常会执行一系列相同的步骤,如扫描.识别.将已识别文本导出为特定格式或导出至特定应用程序.针对经常执行的任 ...

  7. 二十四种设计模式:享元模式(Flyweight Pattern)

    享元模式(Flyweight Pattern) 介绍运用共享技术有效地支持大量细粒度的对象. 示例有一个Message实体类,某些对象对它的操作有Insert()和Get()方法,现在要运用共享技术支 ...

  8. sql server 创建文件组,文件

    添加文件组:  --ADD FILEGROUP 增加文件组 ALTER DATABASE TestHekaton ADD FILEGROUP [Report] ALTER DATABASE TestH ...

  9. Flex 布局教程:语法篇(转)

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中 ...

  10. Log4j使用详解(log4j.properties格式)

    Log4j使用详解(log4j.properties格式) 1.Log4j 的引入 在应用程序中添加日志记录总的来说基于三个目的: ① 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计 ...