2010年4月25日星期日

ADF_081:Task Flow使用指南之一:在页面之间传递参数

开发环境:JDevloper 11.1.2.2.0+ Oracle Database 10g Express Edition 10.2.0.1。

本实验实现如下场景:
在DepartmentList页面,选中一个部门后,传递DepartmentId给DepartmentDetail页面,显示该Department的详细信息。

1. 为了对比开发效果,我这里使用了两种实现方式
(1)在adfc-config.xml中分别创建两组:各自的DepartmentList页面+各自的DepartmentDetail页面。
其中DepartmentList页面内容相同,不同的是DepartmentDetail页面。

(2)方式一:DepartmentDetail页面使用的是手工创建的DepartmentsByParamView1,在Query部分添加一个Where子句:WHERE DEPARTMENT_ID = :bv_departmentId。

(3)方式二:DepartmentDetail页面使用的就是DepartmentsView,其中定义了View Criteria,只不过使用了一个新的实例DepartmentsView3,View Criteria的Query部分添加一个Where子句:WHERE DEPARTMENT_ID = :bv_deptId。



2. 运行
(1)方式一运行效果


(2)方式二运行效果和方式一一样。
因为方式二使用的是ViewCriteria,因此比方式一更灵活。

Project 下载:ADF_TaskFlow_PageToPage.7z

参考文献:
1. http://www.mkyong.com/jsf2/4-ways-to-pass-parameter-from-jsf-page-to-backing-bean/
2. https://blogs.oracle.com/shay/entry/passing_parameters_to_an_adf_p
3. https://blogs.oracle.com/shay/entry/passing_value_between_pages_to
4. http://eleven-china.blogspot.com/2009/03/task-flow.html

1 条评论:

Unknown 说...

hi,马平。我在实现该案例方式一的时候,使用DepartmentsByParamView1拖入页面生成的table是一个空的表单,因为bv_departmentId值为空,不知道你将bv_departmentId设置成何值,才会实现你在实验中table不为空的效果。