智能自动PPR更改事件策略

ADF开发人员普遍认为,将迭代器绑定更改事件策略设置为ppr在性能方面不是一件好事,因为此策略会强制框架刷新每个请求上绑定到此迭代器的所有属性绑定。 这不是真的!

框架仅刷新在请求期间已更改的属性和依赖于已更改属性的属性。

让我们考虑一个简单的用例。 有一种形式:



屏幕截图2014年7月24日下午6.27.20 迭代器的更改事件策略设置为ppr,这在JDeveloper 11gR2和12c中是默认设置。 “名字”和“姓氏”字段是自动提交的。 “全名”字段将通过姓和名的串联来计算。 因此,在名字和姓氏的设置器中,我们有一个对应的方法调用:

public void setLastname(String value) {
  setAttributeInternal(LASTNAME, value);

  setFullname(getFirstname() + " " + getLastname());
}

让我们看一下输入“姓氏”后框架生成的响应内容:

屏幕截图2014年7月26日下午6.49.05

作为对修改后的姓氏的响应,框架将仅部分刷新两个输入组件-姓氏和全名。 全名将被刷新,因为其值在请求期间已更改。 表单上的其余组件不参与部分请求。

让我们考虑更复杂的用例。

屏幕截图2014年7月26日下午6.29.41
我们将在表格上以“全名”字段的标签显示“标题”字段的值:

<af:inputText label="#{bindings.Title.inputValue}"
              value="#{bindings.Fullname.inputValue}" 
              required="#{bindings.Fullname.hints.mandatory}"
              columns="#{bindings.Fullname.hints.displayWidth}"
              maximumLength="#{bindings.Fullname.hints.precision}"
              shortDesc="#{bindings.Fullname.hints.tooltip}" id="itFullName">
</af:inputText>

因此,每次选择标题时,“全名”的标签都应更新。 当然,“标题”字段是自动提交的。 让我们看一下响应内容:

屏幕截图2014年7月26日下午6.40.59

尽管在请求过程中“ Full Name”(全名)的值未更改,但输入组件将被刷新,因为其label属性指向更改后的字段的值。 同样,在部分请求期间将仅刷新这两个字段。

而已!

翻译自: https://www.javacodegeeks.com/2014/07/smart-auto-ppr-change-event-policy.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值