PPR
概念:PPR是页面上指定的一部分,和页面其他部分不同的是PPR region 是在用户执行了一个相应的action事件后对该部分进行一个动态的刷新,当PPR被激活,UIX发出一个包含有要刷新部分的请求。服务器只对这些重新显示给用户的部分进行刷新,最重要的一点是,PPR不需要你写任何的javaScript代码来完成动态的刷新。
为什么要建立PPR
为了在刷新页面的时候为了减少页面的刷新时页面的抖动次数。
思路:
通过页面上的item的firePartialAction时间来修改PVO中某个逻辑属性的值,从而改变绑定在该PVO上的该属性的某个Item的rendered属性值。
建立PPR的步骤有那些:
1 为poplist建立bc4j包
2 建立PVO,目的是用来为动态改变的item的rendered属性值提供中间变量;
3 设置要发生动态改变的组件item的rendered属性值和PVO中的某一属性进行关联;
4 然后设置引起页面发生局部刷新的item的属性;
5 在CO中扑捉到该事件的触发
6 在AM实现对PVO的属性值的更改
图示:

下面通过实例来进一步详细上面的每一个步骤
1 建立bc4j包oracle.apps.ak.pprtest.poplist.server(假设AM所在的包名为:oracle.apps.ak.pprtest.server);
2 在该包上通过VO向导建立pprtestPVO,直接跳转到Attribute这一步,点击NEW,新建属性,Name:itemrendered 、Type:boolean;
3 将该PVO引入到AM下面;
4 在页面上添加一个MessageCheckbox组件、一个messageTextInput组件。
5 设置MessageCheckbox组件的ActionType属性为:firePartialAction,Event属性为:HidenTextinput,submit属性为:true、disable server side validation 属性为:true、disable client sidevalidation属性为:true;
6 设置messageTextInput的rerdered属性为${OA. pprtestPVO1. itemrendered }
7 在该页面所在CO中的ProcessFormRequest()方法中加入下面的代码
else if (“HidenTextinput “.equals(pageContext.getParameter(OAWebBeanConstants.EVENT_PARAM)))
{
// The Position poplist PPR change event has fired.
if(pageContext.getParameter(“MessageCheckbox”)!=null)
{
am.invokeMethod(“handlePositionChangeEvent”);
}
}
8 在AM中添加下面的方法: handlePositionChangeEvent{
OAViewObject pVO = (OAViewObject)findViewObject(“pprtestPVO1″);
OARow poRow = (OARow)pVO.getCurrentRow();
poRow.setAttribute(“itemrendered “,Boolean.FALSE);
}
9 完成,测试页面!
这里说一下fireAction和firePartialAction两类事件之间的区别:
1 经过我个人的测试,发现两种方法最大的区别在于fireAction时间可以导致整个页面的一个刷新,而fireAction适合于触发一个局部刷新的请求。
fireAction事件封装了提交一个Form时所必须的一些信息,包括“事件名称”,“form的参数”以及所有和提交form时相关的验证信息。
2 上面的disable server side validation 和client server side validation 的属性用来设置在提交form时候是否对该form中所有的参数进行验证,比如时候有必输字段的值为空,数字字符类型是否匹配等等的验证,注意的地方是,这里的验证是针对整个form而言的,在设置局部刷新的时候,一般设置该两个属性的值为true。如果着两个属性设置为false的话,如果页面存在其他的必输字段,那么会在客户端报错,导致局部刷新的请求不能被正常提交。
分享到:
相关推荐
oracle存储过程实现发邮件,oracle存储过程实现发邮件,oracle存储过程实现发邮件
本文将详细介绍如何通过编写SQL脚本来自动备份Oracle中的存储过程,并结合批处理文件和任务计划程序来实现自动化操作。 #### 二、创建SQL脚本 首先,我们需要创建一个SQL脚本来获取存储过程的定义并将其保存为文本...
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
在Oracle数据库环境中,事务管理与存储过程的结合是实现数据一致性、事务回滚以及错误处理的关键技术之一。本文将深入探讨“Oracle事务回滚存储过程”这一主题,旨在理解其核心概念、工作原理以及实际应用。 ### ...
使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...
ORACLE 存储过程的异步调用 本文讨论了 ORACLE 存储过程的异步调用方法,旨在解决客户端长时间等待存储过程执行的问题。主要思路是使用 DBMS_JOB 包将主处理存储过程作为任务提交到任务队列中,并通过 DBMS_PIPE 包...
本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...
存储过程的优点包括提高性能、减少网络流量、增强安全性以及实现模块化编程。 1. **创建存储过程**:使用`CREATE PROCEDURE`语句定义存储过程,例如: ```sql CREATE OR REPLACE PROCEDURE my_procedure (param1 ...
使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...
在 oracle 中,定时执行存储过程可以使用 DBMS_JOB 包来实现。通过创建任务,我们可以让 oracle 自动执行某些操作,而不需要人工干预。这种技术可以广泛应用于各个领域,例如数据备份、数据分析、报表生成等。
Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...
oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel oracle 存储过程导出excel
oracle定时器调用存储过程
oracle 批量插入存储过程,性能非常高!
程序的实现过程包括系统ADO配置、登录Oracle信息设置、程序参数设置、数据监测四个阶段。在ADO配置阶段,为了实现VFP数据与Oracle数据库之间的通讯,需要在数据转换服务器上安装Microsoft ODBC Driver for Oracle的...
### Delphi调用Oracle的...总结来说,本文详细介绍了如何在Delphi中调用Oracle的存储过程,包括存储过程的创建、Delphi环境的配置以及具体的代码实现。这为开发者提供了一个实用的例子,以便更好地理解和掌握这一技术。
在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保数据的一致性和安全性。批量提交是存储过程...
在本主题中,我们将深入探讨如何利用Oracle的存储过程来创建和管理定时任务。 首先,Oracle中的定时任务通常通过“调度器”(DBMS_SCHEDULER)来实现。这个包提供了丰富的功能,允许用户定义任务、设置执行时间、...
例如:字段为1,2,3,4,5 截取之后为 1 2 3 4 5