`
dragonxiangfu
  • 浏览: 156402 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ADF Hands-on:使用ADF创建简单的增删改查

 
阅读更多

本文介绍如何使用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

clip_image002[1]

单击Finish,生成包含Model和ViewController两个project的application。

clip_image004

创建业务组件(Business Component)

右键单击Model工程,New->ADF Business Components -> Business Components from Tables

clip_image006

单击Ok,弹出设置数据库连接的对话框;

clip_image008

单击“+”按钮创建新的连接。Connection Name栏设置连接名称:myConn,并设置目标数据库的连接信息,测试连接成功后单击“OK”;

clip_image010

此时Connection中就出现了刚创建的myConn连接,单击“OK”进入Business Component创建窗口;

clip_image012

设置Entity Objects

package: model.entities

单击Query按钮查询出数据库中的表,将COUNTRIES表移到Selected框中

clip_image014

单击Next,设置view objects;

package:model.queries

将CountriesView移到Selected框中

clip_image016

单击“Next”,忽略Read-Only View Objects的设置;单击“Next”,进入Application Module设置界面,修改package: model.services ;

单击Finish,完成Business Componets创建。

clip_image018

设置查询条件

由于在查询页面中需要根据Country Id来对Country表进行查询,因此我们需要在Country视图中定义一个根据Country Id查询的Criteria。

双击Model工程下的CountryView,单击Query标签,进入Country视图的查询定义界面;

clip_image020

点击“View Criteria”后的“+”按钮创建Criteria

Criteria Name:CountriesViewByCountryId

单击“Add Item”

Attribute:CountryId

Operator:Equals

Operand:Bind Variable

单击Parameter后面的“+”按钮,创建绑定的变量

Name:varCountryId

Type:String

clip_image022

单击OK,回到Create Criteria界面,单击OK完成CountriesViewByCountryId Criteria的创建。

clip_image024

设置AppModule中的Data Model

双击Model工程中的AppModule文件,选择“Data Model”标签;

clip_image026

单击选中Data Model框中的CountryView1,点击Data Model后的“Edit”按钮,在弹出的编辑界面中将CountriesViewByCountyId Criteria移到Selected框中。

clip_image028

单击Ok,保存,完成Country查询的定义。

创建Web视图

创建countries list页面

右键单击ViewController工程,New -> JSF -> JSF Page

File Name: listPage.jspx

勾选中“Create as XML Document (*.jspx)”

clip_image030

单击OK,进入listPage页面。

创建countries list显示table

将Component Palette窗口中的“Panel Collection”组件拖拽到listPage中

clip_image032

点击Data Controls窗口的刷新按钮,显示出刚创建的AppModuleDataControl

clip_image034

将ContriesView1拖拽到listPage页面中“Panel Collection”中,选择Table -> ADF Read Only Table

clip_image036

在弹出的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

clip_image038

在生成的Panel中单击“ExecuteWithParams”按钮,在属性窗口中将Text属性修改为Search

clip_image040

再次右键listPage.jspx -> Run 运行该页面验证查询功能。

创建编辑页面

安装listPage页面的方式创建一个新页面:editPage.jspx

将Data Controls中的AppModuleDataCountrol/CountriesView1拖拽到editPage页面,选择Form -> ADF Form

clip_image042

单击OK,完成Form的创建;

拖拽两个Button组件到Form下方,将Text属性分别修改为Cancel和Save

clip_image044

保存页面

clip_image046

创建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

clip_image048

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

clip_image050

修改editPage按钮导航

将Cancel按钮属性中的Action值修改为cancel

将Save按钮属性中的Action值修改为save

至此对Countries表的CRUD功能就完成了。

运行

右键listPage.jspx -> Run 。

clip_image002[3]

示例代码

HelloWorldApp.zip

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics