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. ndk-build出错,错误以及解决办法如下

    用NDK编译jni目录下的文件了,我的系统是Ubuntu10.04,NDK版本是android-ndk-r7b. 切换到工程的jni目录下执行:ndk-build(ndk-build的路径已经添加到系 ...

  2. iPad 2升级iOS 9的过程记录

    有一台老旧的iPad2,iOS版本还是5.1.1,现在好多软件都无法安装了. 决定升级到最新的操作系统,中间的过程,遇到的问题和解决办法如下: 据说升级到iOS 9以后就不好越狱了,不过我也就是用用一 ...

  3. TinyXML2读取和创建XML文件 分类: C/C++ 2015-03-14 13:29 94人阅读 评论(0) 收藏

    TinyXML2是simple.small.efficient C++ XML文件解析库!方便易于使用,是对TinyXML的升级改写!源码见本人上传到CSDN的TinyXML2.rar资源:http: ...

  4. Java——多线程安全问题

     静态代码块中没有this /* * 线程安全问题产生的原因: * 1.多个线程操作共享的数据 * 2.操作共享数据的线程代码有多条 * * 当一个线程在执行操作共享数据的多条代码过程中,其他线程 ...

  5. Python学习笔记——文件

    1.文件只是连续的字节序列 open()内建函数是打开文件之门的钥匙 file_obj=open(file_name,access_mode='r/w/a,' buffering=-1) file_n ...

  6. 关于ASP.NET MVC4 Web API简单总结

    原文地址:http://www.cnblogs.com/lei2007/archive/2013/02/01/2888706.html wcf web api 和 asp.net web api , ...

  7. Python_Day_5装饰器、字符串格式化、序列化、内置模块、生成器、迭代器之篇

    一.装饰器 为什么要用装饰器??? 在实际的开发环境中应遵循开发封闭原则,虽然在这个原则是用的面向对象开发,但也适用于函数式编程,简单地说,它规定已经实现的功能代码不是允许修改的,但是可以被扩展: 封 ...

  8. 虚拟化之esxi命令行管理之二

    /vmfs # ls -l lrwxrwxrwx 1 root root 4 Mar 23 2013 devices -> /dev drwxr-xr-x 1 root root 512 Sep ...

  9. 【转】asp.net中的cookie使用介绍

    来源:http://www.jb51.net/article/30398.htm 一.cookie导读,理解什么是cookie 1.什么是cookie:cookie是一种能够让网站服务器把少量数据(4 ...

  10. 服务器返回的各种HTTP状态码介绍

    [摘要]HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码.它由 RFC 2616 规范定义的,并得到RFC 2518.RFC 2817.RFC 22 ...