本文介绍如何使用Oracle应用开发框架ADF(Application Development Framework)来创建包含简单的增删改查功能的Web应用。
本文目的
帮助ADF的学习者在学习ADF基本知识后进行ADF实践,顺利完成ADF开发的入门,同时通过该实验更深入了解ADF的相关概念。
本文不涉及
本文不涉及ADF的基本概念和模型的讲解。关于ADF详细内容可参考Oracle官网上的ADF开发者指南:http://docs.oracle.com/cd/E21764_01/web.1111/b31974/toc.htm
本文的阅读对象
ADF入门学习人员(对ADF开发框架有初步的认知)或想了解ADF开发流程的技术爱好者。
开发环境
1. 安装JDeveloper。 JDevloper安装介质下载地址:http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html
2. 数据库。
本实验是对数据库单表进行CRUD,表名:Country,创建脚本:
CREATE TABLE COUNTRIES
( COUNTRY_ID CHAR(2) NOT NULL ,
COUNTRY_NAME VARCHAR2(40),
REGION_ID NUMBER,
CONSTRAINT "COUNTRY_C_ID_PK" PRIMARY KEY ("COUNTRY_ID") ENABLE
)
实验步骤
创建ADF Web Applicaton
打开JDeveloper,File -> New -> Application ->Fusion Web Application
Application Name: HelloWorldApp
单击Finish,生成包含Model和ViewController两个project的application。
创建业务组件(Business Component)
右键单击Model工程,New->ADF Business Components -> Business Components from Tables
单击Ok,弹出设置数据库连接的对话框;
单击“+”按钮创建新的连接。Connection Name栏设置连接名称:myConn,并设置目标数据库的连接信息,测试连接成功后单击“OK”;
此时Connection中就出现了刚创建的myConn连接,单击“OK”进入Business Component创建窗口;
设置Entity Objects
package: model.entities
单击Query按钮查询出数据库中的表,将COUNTRIES表移到Selected框中
单击Next,设置view objects;
package:model.queries
将CountriesView移到Selected框中
单击“Next”,忽略Read-Only View Objects的设置;单击“Next”,进入Application Module设置界面,修改package: model.services ;
单击Finish,完成Business Componets创建。
设置查询条件
由于在查询页面中需要根据Country Id来对Country表进行查询,因此我们需要在Country视图中定义一个根据Country Id查询的Criteria。
双击Model工程下的CountryView,单击Query标签,进入Country视图的查询定义界面;
点击“View Criteria”后的“+”按钮创建Criteria
Criteria Name:CountriesViewByCountryId
单击“Add Item”
Attribute:CountryId
Operator:Equals
Operand:Bind Variable
单击Parameter后面的“+”按钮,创建绑定的变量
Name:varCountryId
Type:String
单击OK,回到Create Criteria界面,单击OK完成CountriesViewByCountryId Criteria的创建。
设置AppModule中的Data Model
双击Model工程中的AppModule文件,选择“Data Model”标签;
单击选中Data Model框中的CountryView1,点击Data Model后的“Edit”按钮,在弹出的编辑界面中将CountriesViewByCountyId Criteria移到Selected框中。
单击Ok,保存,完成Country查询的定义。
创建Web视图
创建countries list页面
右键单击ViewController工程,New -> JSF -> JSF Page
File Name: listPage.jspx
勾选中“Create as XML Document (*.jspx)”
单击OK,进入listPage页面。
创建countries
list显示table
将Component Palette窗口中的“Panel Collection”组件拖拽到listPage中
点击Data Controls窗口的刷新按钮,显示出刚创建的AppModuleDataControl
将ContriesView1拖拽到listPage页面中“Panel Collection”中,选择Table -> ADF Read Only Table
在弹出的Edit Table Columns窗口中选择“Single Row",单击OK生成Country列表。
此时可右键点击listPage.jspx,单击“Run”,运行该页面,页面将显示country的所有记录的列表。
创建countries 的查询panel
在Data Controls窗口中将CountriesView1->Operations->ExecuteWithParas拖拽到listPage页面下Panel Collection组件的左方,选择“ADF Parameter Form”,在“Display Label”中输入Country Id,单击OK
在生成的Panel中单击“ExecuteWithParams”按钮,在属性窗口中将Text属性修改为Search
再次右键listPage.jspx -> Run 运行该页面验证查询功能。
创建编辑页面
安装listPage页面的方式创建一个新页面:editPage.jspx
将Data Controls中的AppModuleDataCountrol/CountriesView1拖拽到editPage页面,选择Form -> ADF Form
单击OK,完成Form的创建;
拖拽两个Button组件到Form下方,将Text属性分别修改为Cancel和Save
保存页面
创建Page Flow
双击打开ViewController工程下Web Content/Page Flows/adfc-config
将页面listPage.jspx和editPage.jspx拖拽到空白处,分别生成listPage和editPage两个图标;
将Data
Controls窗口下AppModuleDataControl/CountriesView1/Operations/CreateInsert拖到空白处,生成一个CreateInsert图标;
将Data Controls窗口下AppModuleDataControl/Operations/Commit拖到空白处,生成一个Commit图标;
将Data Controls窗口下AppModuleDataControl/Operations/Executet拖到空白处,生成一个Execute图标;
单击Component Palette中Control
Flow Case的箭头组件,使其由listPage图标指向CreateInsert图标,并修改Form Outcome:new
重复创建以下的Control Flow Case
From
|
To
|
Outcome
|
createInsert
|
editPage
|
CreateInsert[默认]
|
listPage
|
editPage
|
edit
|
editPage
|
Commit
|
save
|
editPage
|
Execute
|
cancel
|
Commit
|
listPage
|
Commit [默认]
|
Execute
|
listPage
|
Execute [默认]
|
listPage
|
Commit
|
delete
|
listPage添加新增、修改、删除按钮
打开listPage页面,将Component Palette窗口中的Toolbar组件拖到panel Collection中toolbar区域;
拖拽两个Toolbar Button组件拖到Toolbar中,分别命名为New和Edit,将New按钮属性中的Action值修改为new,将Edit按钮的修改为edit;
将Data Controls窗口下AppModuleDataControl/Operations/Delete拖到Toolbar中,将其属性中的Action值修改为delete
修改editPage按钮导航
将Cancel按钮属性中的Action值修改为cancel
将Save按钮属性中的Action值修改为save
至此对Countries表的CRUD功能就完成了。
运行
右键listPage.jspx -> Run 。
示例代码
HelloWorldApp.zip
分享到:
相关推荐
ADF4158-控制器 使用Arduino和Raspberry对ADF4158进行编程。
ADI公司ADF4360-9 PLL+VCO频综芯片调试笔记
ADF4360-7应用资料 ...原理图:ADF4360-7及控制部分原理图(Altium Designer Winter 09 格式和PDF格式),所需元件封装库等 控制程序:基于MSP430F149的控制程序及其他参考程序 整理时间: 2012_3_6 沨
单片机控制锁相环ADF4360-7源码,其他系列的锁相环也都接触过,可以交流交流
ng-annotate-adf-plugin 插件来注释小部件。 与 gulp 一起使用 包.json { " devDependencies " : { " gulp " : " ^3.8.10 " , " gulp-load-plugins " : " ^0.8.0 " , " gulp-ng-annotate " : " ^0.5.2 " , " ...
ADF4360-8英文资料有需要的朋友来看看。
ADF4360-8的C语言程序,可直接下载使用!
Arduino ADF4350示例使用Arduino对Analog Devices ADF4350进行编程的示例。 这些是为Kerry Banke,N6IZW和圣地亚哥微波集团的其他人员撰写的。 ADF4350在一个简单的移位寄存器接口后面有6个寄存器。 警告:由于数字...
基于80c51f芯片控制的频率合成器adf4360-7
stc15系列单片机串口和模拟spi可用程序,spi是配置了ADF4360-3时钟芯片,时钟芯片能够正常工作,亲测可用
adf-widget-github GitHub widgest支持 。 建造 该小部件是在 , , 和的帮助下构建的。 有关node和npm的安装说明,请。 安装凉亭和口水 npm install -g bower npm install -g gulp 安装依赖项 npm install bower ...
Oracle-ADF-项目 致力于: 测试项目-v3
一种基于ADF4360-9和FPGA的合成时钟源设计.pdf
应用程序开发框架示例该存储库包含使用开发的简单(和不太简单)项目的示例集合。ADF示例的目标该存储库的目标是提供工作源代码作为示例,以及一些有用的组件,这些组件将作为您的用例和自定义应用程序的灵感。 这个...
节点连接 sp 它是一个独立服务器,主要用于将 Web 应用程序和 Web 游戏连接到智能手机。 你可以做什么 简而言之,可以将多个设备组合在一起进行实时通信。 需要多终端的游戏实时通讯部分 将您的智能手机连接到 Web ...
ADF4360-x为ADI的一款PLL芯片,本程序为改芯片的驱动程序,包含全部寄存器的读写,主控为ATmeag168
ADF样本 ADF样品 管道:01_plCopyOneTextFile 说明:将一个文本/ CSV文件从一个文件夹复制到BLOB中的另一个文件夹组件:复制数据 管道:02_plCopyAllTextFiles 说明:将所有文本/ CSV文件从一个文件夹复制到BLOB中...
ADF4350 arduino source code
adf4351-final1_adf4351点频_ADF4351_源码.zip