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存储过程实现发邮件
本文实例讲述了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 存储过程的高级应用,包括 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的...
在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保数据的一致性和安全性。批量提交是存储过程...
在本主题中,我们将深入探讨如何利用Oracle的存储过程来创建和管理定时任务。 首先,Oracle中的定时任务通常通过“调度器”(DBMS_SCHEDULER)来实现。这个包提供了丰富的功能,允许用户定义任务、设置执行时间、...
例如:字段为1,2,3,4,5 截取之后为 1 2 3 4 5
Oracle数据库作为企业级的主流数据库系统,提供了丰富的存储过程和函数功能,以实现复杂的数据处理逻辑。而Hibernate作为一种流行的Java持久化框架,它允许开发者通过ORM(对象关系映射)方式与数据库进行交互。本篇...