Oracle ADF 开发技巧汇总
文章平均质量分 63
keven
这个作者很懒,什么都没留下…
展开
-
好东西,阅读ADF摘
“任务流 task flows”可以包括非可视化的组件,比如方法调用。 “页片段 page fragment”可以运行在一个页面的某个局部区域,最大限度地提高复用性。 ADF Task Flow是在JSF Controller的基础上扩展而来的,它除了包括View Activities和导航规则之外,还可以包括method calls等非可视化Activity。 ADF Tas原创 2013-09-27 20:24:57 · 762 阅读 · 0 评论 -
在Managed Bean中给ADF RichTable排序
1, Backing Bean中设置排序方法[java] view plaincopyprint?public void sortMethod(SortEvent event){ DCIteratorBinding iter = ADFUtils.findIterator("xxxxVOIterator"); Stri原创 2013-09-29 08:04:15 · 473 阅读 · 0 评论 -
ADF中使用CreateWithParams给新行中的字段指定默认值
在ADF应用中,页面的数据主要来自Model层的绑定。在使用ADF BC的情况下,如果需要在新建行数据的时候对字段使用默认值(包括af:form中的数据),可以对页面对应的EO中的属性指定默认值;也可以使用VO中的CreateWithParams action,在PageDef中对字段进行逐一处理,Andrejus的文章是一个很好的Sample:http://andrejusb.blogs原创 2013-09-29 08:02:51 · 470 阅读 · 0 评论 -
ADF中AM实例池参数介绍
A Application Module Pooling Summary“An application module pool is a collectionapplication module instances of the same type.Application Module Pool是一个存放有同一类型的AM实例的集合。“This pool ofapplicat原创 2013-09-29 08:07:08 · 658 阅读 · 0 评论 -
ADF Project 使用多个Properties文件/引用其他Project的Properties文件
ADF应用中定义了多个Project,每个Project有默认使用的Properties文件。某个Project可以引用其他Project中的Properties文件。下面介绍如何通过Project的属性配置来给Project添加多个可使用的Properties文件。 在Jdeveloper开发主界面中,右键Project->Project Properties->Reso原创 2013-09-29 08:06:59 · 643 阅读 · 0 评论 -
ADF BC中AM, EO, VO的初始化顺序
1, 测试代码介绍基于HR Schema,创建Employees、Departments表的EO、VO对象。2, 创建DepartmentEO,DepartmentVO, EmployeeEO, EmployeeVO的定义类和对象类。3,在类中添加输出信息例如:[java] view plaincopy原创 2013-09-29 08:06:50 · 1006 阅读 · 0 评论 -
ADF中给VO动态添加检索基准,过滤数据(一)
在程序运行时动态给VO添加检索基准,是通过VO过滤数据的一种方法。当然,也可以动态创建where子句。1)动态创建检索基准[java] view plaincopyprint?ViewCriteria vc = this.createViewCriteria(); ViewCriteriaRow vcr =原创 2013-09-29 08:06:42 · 826 阅读 · 0 评论 -
使用LauchPopupListener过滤LOV数据
概述在实际应用中,lov(list of value)中显示的数据往往会根据页面上的某些条件进行过滤,此时,可以应用lauchpopuplistener来实现该功能。实现1、基于Employees表和Jobs表创建EO/VO/AM,并设置Employees对应的VO中的JobId使用Jobs对应的VO作为数据源。2、在Jobs表对应的VO上添加绑定变量,并修改SQL原创 2013-09-29 08:06:31 · 513 阅读 · 0 评论 -
给ADF EO的属性设置值
继承EO的对象类,在该类中使用下面的代码片段。entityDef是EO的定义类对象,需要先确定属性的类型。[java] view plaincopyprint? AttributeDef atrDef = entityDef.g原创 2013-09-29 08:05:55 · 559 阅读 · 0 评论 -
总结ADF Faces 中使用到的一些 JavaScript
在ADF web应用中可以使用JavaScript在客户端完成需要的逻辑。下面整理一些常用的操作。1)打开对话框[javascript] view plaincopyprint?function openPopup(evt){ var popup = AdfPage.PAGE.findComponent("popupId原创 2013-09-29 08:05:42 · 535 阅读 · 0 评论 -
关于task flow和object scope
我们在设计开发一个新的页面的时候,managed bean选择何种scope更适合业务逻辑?何种scope下managed bean中的变量会随着页面一起刷新?希望下面的这段话能给你点启示。 When determining what scope to use for variables within a task flow, you should use any of the s原创 2013-09-29 08:05:01 · 525 阅读 · 0 评论 -
AM pool中的AM实例的生命周期
AM缓冲池中的AM实例会随着客户端请求的增加而增长。相对于增长,负责清除操作的是存在于Java虚拟机中的monitor,该monitor在每jbo.ampool.monitorsleepinterval时间后进行AM实例的清除操作。清除的对象先考虑是否有AM实例的inactive时间大于jbo.ampool.maxinactiveage,如果是就清除。实例剩余数量尚未达到jbo.ampoo原创 2013-09-29 08:03:40 · 591 阅读 · 0 评论 -
ADF中页面导航总结
转自:http://blog.csdn.net/luyushuang/article/details/7079864在实际项目开发中,页面的导航(navigation)规则会比较复杂。整个系统的页面浏览风格先设计好很重要,点击按钮请求新页面,是在原browser window(view port)中刷新页面,还打开新的window;某个页面可能只允许打开一个window转载 2013-09-29 08:03:13 · 1028 阅读 · 0 评论 -
ADF中清空Session信息的代码示例
代码源于Fusion Developer Guide for ADF,可以整理成框架的公用代码:[java] view plaincopyprint?public String logoutButton_action() throws IOException{ ExternalContext ectx = FacesContex原创 2013-09-28 09:33:03 · 599 阅读 · 0 评论 -
ADF中控制EO属性是否可以更新的方法
在页面设计的时候,某个字段的值是否可以修改的控制方法很多,这里介绍如何从EO中操作。在EO中,属性的Updatable的值有三种:1)Always,属性总是可以更新的;2)While New,EO对应一行数据,在该行数据新创建的时候,该属性是可以更新的;在成功将数据提交到数据库中后,该行数据的这个属性就不可以再进行修改了;3)Never,属性是只读的。原创 2013-09-29 08:03:54 · 594 阅读 · 0 评论 -
ADF应用程序中创建和恢复保存点
在Oracle Fusion Web应用开发中,如果采用Task Flow来进行应用流的控制,默认只要创建一个task flow就是一个新的事物开始,如果在流中需要回滚,只需要添加一个restoreSavepoint活动就可以实现事物的回滚,但如果需要在程序中实现保存点的创建和回滚,使用下面的代码: 1、创建保存点[c-sharp] view p原创 2013-09-29 08:04:24 · 476 阅读 · 0 评论 -
ADF中调用PLSQL存储过程和函数
下面是从 ADF guide 中总结的一段调用 PLSQL 存储过程和函数的方法,仅供参考。 1 ,调用没有参数的存储过程可以使用 executeCommand () 函数,在 AM 的实现类中可以这样来使用:getDBTransaction().executeCommand("begin devguidepkg.proc_with_no_args; end;"); 2 ,原创 2013-09-29 08:04:46 · 721 阅读 · 0 评论 -
ADF常用资料地址
http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/adfoverview/adfoverview.htmADF11g简单视频集http://www.oracle.com/technology/products/jdev/viewlets/viewlet.htmlOracle10.1.3升级到11htt原创 2014-04-15 15:25:30 · 752 阅读 · 1 评论 -
Oracle ADF 双击行事件
参考ADF Code Corner How-to handle and respond to mouse double clicks in ADF Faces tables.在双击table 的某一行时 ,实现弹出popup,popup中弹出子table的数据.在主table的属性结尾加上 clientListener 捕获客户端双击行这个事件,并传递给js 的handle原创 2014-04-02 17:13:07 · 933 阅读 · 0 评论 -
Oracle ADF 菜单中鼠标右键实现新增和删除按纽
1 在页面中把VO以Tree组件展现2 在的contextMenu中加组件,如图: 3 编写新增或删除代码,现以删除为例,在commandMenuItem中加入删除事件onTreeNodeDelete[java] view plaincopypublic void onTreeNodeDelete(ActionEvent原创 2014-03-10 15:58:28 · 820 阅读 · 0 评论 -
Oracle ADF 实现全选,全不选,多选功能
1 在EO中加入一Boolean类型的字段:isCheck;2 在VO中加入刚才在EO中的字段;把VO拖到页面以Table显示,并修改isCheck列的组件为:[html] view plaincopyaf:selectBooleanCheckbox value="#{row.isCheck}" id="ot5"/> 同原创 2014-03-10 15:56:05 · 1022 阅读 · 1 评论 -
地址
1.http://localhost:7101/console/login/LoginForm.jsp本地开发环境入口页面。原创 2014-02-17 10:17:40 · 885 阅读 · 0 评论 -
如何在BankingBean类中调用AM中的方法
String DeviceId=row.getAttribute("DeviceId")==null?"":row.getAttribute("DeviceId").toString(); OperationBinding opt= this.findOperation("getDownLoadParamersValue"); Map m原创 2014-01-14 16:23:15 · 599 阅读 · 0 评论 -
ADF学习笔记之客户端获取组件对象
由于Oracle ADF是JSF的扩展,而JSF更是在UI界面组件化上的一个飞跃,说到Web UI 又不得不谈JavaScript。因此我们自然而然地想到如何在客户端来处理ADF组件。ADF很好地用JavaScript将其在客户端进行很好的封 装。所以我们在设计界面时在Inspector属性栏中所能见到的大部分ADF组件属性的Accessor均能利用前端的JavaScript中调用。但 是调用原创 2013-11-04 10:15:03 · 622 阅读 · 0 评论 -
在Bean(java类)中如何取到jspx中Bindings的数据?How to get the ADF BindingContainer in a managed bean?
例如:test.jspx的bindings为 Source中为: #{bindings.title.inputValue}" id="ph1"> import javax.faces.application.Application;import javax.faces.context.FacesContext;import javax原创 2013-11-04 10:21:53 · 1014 阅读 · 0 评论 -
jspx页面初始化时将View Object中SQL的变量赋bindings中的值 bind variable of the sql in vo
下面的例子以taskDetails1.jspx文件为例进行说明。1、新增action。action的id为ExecuteWithParams。此操作在.jspx的binding中进行。此操作是为了给变量赋值。A、打开jspx文件或这个文件的PagetaskDetails1Def.xml,并点Bingdings中的“+”。 B、选中“action”,并点“原创 2013-11-04 10:20:13 · 853 阅读 · 0 评论 -
如何修改af:table的数据,可以通过修改对应的iterator的数据来实现。
项目中用到的部分程序:1、通过JUCtrlHierBinding 和DCIteratorBinding 获取绑定的Iterator JUCtrlHierBinding nodeBinding = null; nodeBinding = (JUCtrlHierBinding)this.bindings.get("node"); DCItera原创 2013-11-04 10:16:20 · 891 阅读 · 0 评论 -
如何部署WebService到服务器上(adf commonJ)
1.打包。原创 2013-11-01 09:17:24 · 611 阅读 · 0 评论 -
ADF中调用JavaScript的方法
开发环境:JDeveloper 11.1.1.3.0目前我掌握的在ADF页面中调用JavaScript的方法有以下两种:1,使用clientListener事件,其中doEnterKeyDown是定义好的JavaScript函数,type是触发doEnterKeyDown的时机,也就是在按下键盘按键的时候。1)ADF的输入型组件(af:inputText)中原创 2013-09-29 08:06:22 · 733 阅读 · 0 评论 -
JSF控件的immediate属性和页面生命周期
JSF中的控件基本都有immediate属性,对于这个属性的使用总结如下,更详细内容可参考Oracle官方文档。 1,为了更好的理解immediate属性,先看一下JSF页面的生命周期:JSF页面的生命周期有六个,可参考下面的图;ADF页面是建立在JSF页面基础上的,它的生命周期包括JSF页面的六个生命周期外,还包括Init Context and Prepare Mode原创 2013-09-29 08:05:33 · 583 阅读 · 0 评论 -
给ADF EO的属性设置值
继承EO的对象类,在该类中使用下面的代码片段。entityDef是EO的定义类对象,需要先确定属性的类型。[java] view plaincopyprint? AttributeDef atrDef = entityDef.g原创 2013-09-29 08:05:22 · 511 阅读 · 0 评论 -
TROUBLESHOOTING: ADFc: Scope object serialization failed (object not serializable)
运行ADF Applicaiton,出现错误: java.io.NotSerializableException。原因可能是:manaed bean没有实现Serializable 接口,或者是managed bean的scope大于viewScope,页面上组件绑定了scope大于viewScope的managed bean中的组件。解决方案:managed bean实现Seri原创 2013-09-28 09:28:55 · 471 阅读 · 0 评论 -
ADF: ADF Task Flow学习--part4(将有边界的task flow运行为Dialog)
可以将ADF Bounded Task Flow运行为Dialog,而并修改Bounded Task Flow的配置,保留了Bounded Task Flow的重用性。 1,创建Unbounded Task Flow,并创建以处两个Activity和control flow:2,创建Home页面,其中只加了一个Command Button。确保userWindow为原创 2013-09-28 09:27:48 · 775 阅读 · 0 评论 -
ADF: ADF Task Flow学习--part2
1,ADF Task Flow提供模块化的方法定义工作流使用JSF Page Flow的时候,所有的页面navigation都定义在一个页面中;而使用ADF Task Flow,可以分解页面navigation为多个可重用的ADF Bounded Task Flow。.下面是一个凌乱的JSF page flow定义: ADF task flow,不是所有节点原创 2013-09-28 09:25:48 · 567 阅读 · 0 评论 -
如何在使用 ADF 插入或删除行后刷新数据表
概述本文说明了如何在插入新行或删除行(在使用会话 bean 数据控件时)之后刷新“浏览”页上的数据表。下图描述了包含部门表的浏览页,其中插入行或删除行的按钮可用:用户可以选择一行并单击 Delete 按钮。该按钮绑定到 removeEntity() 数据控件方法,默认情况下将从数据库的表中立即删除行。但是,该表仍会显示该行,因为该表在默认情况下未刷新。标题为“使用 会话 bean 数据原创 2013-09-27 14:10:20 · 1041 阅读 · 0 评论 -
ADF backing Bean中常用的代码
Bean中常用方法:123//获取binding容器BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();123//获取Page definitions的 attribute的值AttributeBinding attr = (AttributeBinding)bindings.getCo原创 2013-09-27 13:54:43 · 619 阅读 · 0 评论 -
ADF 局部刷新 PPR小结
局部刷新分为两个部分:被刷新控件和触发控件,各自设置如下:1 .被刷新控件 设置 partialTriggers属性 为触发控件的id 可以设置多个id 也就是说可以由多个控件来触发其刷新2. 触发控件设置id属性 (注意:要保证id的唯一性,id命名不能以数字开头,不能包含空格,不能包含“:”)对于按钮控件或commandLink控件 设置partialSubmit属性为TRUE,配转载 2013-09-27 14:17:37 · 961 阅读 · 0 评论 -
如何在使用 ADF 插入或删除行后刷新数据表
转自: http://www.oracle.com/technetwork/cn/testcontent/index-083281-zhs.html概述本文说明了如何在插入新行或删除行(在使用会话 bean 数据控件时)之后刷新“浏览”页上的数据表。下图描述了包含部门表的浏览页,其中插入行或删除行的按钮可用:用户可以选择一行并单击 Delete 按钮。该按钮绑定到 remo转载 2013-09-24 10:58:54 · 698 阅读 · 0 评论 -
ADF中使用Popup
概述本文主要描述在Oracle ADF中使用Popup,利用showPopupBehavior,popup与dialog可以方便地实现。需求1、由按钮触发弹出Popup2、第一个Popup中提示是否确定(Confirmation),如果确定,则进而弹出提示操作成功的Popup(Tip)实现1.创建ADF应用2、在ViewController项目中创建名为main.jspx的原创 2013-09-24 10:21:33 · 689 阅读 · 0 评论 -
通过Primary Key查找实体对象
最近在学习Oracle ADF11g,记录学习的点滴。 本文使用HR模式下的Departments和Employees两个数据库表,在进行练习之前需要先创建相关的应用模块和实体对象。下面是创建的业务组建图: 一般在程序开发过程中,很多情况下希望通过关键值来取得实体对象的行以及相关信息。为了访问实体对象的行,需要使用一个相关的对象叫做原创 2013-09-20 09:11:53 · 495 阅读 · 0 评论