`

oracle PPR Region的实现过程

阅读更多

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的属性值的更改

图示:

PPR

下面通过实例来进一步详细上面的每一个步骤
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的话,如果页面存在其他的必输字段,那么会在客户端报错,导致局部刷新的请求不能被正常提交。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics