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

简介: 2014-06-18 Created By BaoXinjian 一、摘要 上文介绍在OAF按MVC的架构,分为三层,即Model-View-Contorl, 对OAF 的View层的一下基本概念和一些小案例 Page - 页面概述 Page的关键属性 Item的关键属性 Reus...

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

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
20天前
|
存储 前端开发 调度
Flux 与传统的 MVC 架构模式区别
Flux是一种用于构建用户界面的架构模式,与传统的MVC架构不同,它采用单向数据流,通过Dispatcher统一管理数据的分发,Store负责存储数据和业务逻辑,View只负责展示数据,使得应用状态更加可预测和易于维护。
|
1月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
59 3
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
66 2
|
1月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
85 0
|
20天前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
26天前
|
存储 监控 Linux
Docker技术架构概述
【10月更文挑战第22天】Docker采用CS架构,Client与Daemon交互,Compose管理多容器应用。
|
1月前
|
消息中间件 NoSQL Kafka
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
大数据-52 Kafka 基础概念和基本架构 核心API介绍 应用场景等
63 5
|
1月前
|
消息中间件 存储 分布式计算
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解
67 4
|
1月前
|
前端开发 Unix Linux
KVM 架构概述
【10月更文挑战第12天】KVM是基于硬件辅助虚拟化技术的虚拟机监控器,核心依赖于CPU的虚拟化支持如Intel VT和AMD-V。
|
1月前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
50 0
下一篇
无影云桌面