ADF initContext和prepareModel之间的区别,因为它们都是通过执行buisness服务来准备数据,使其通过作为Map对象的绑定容器可用。
答案 0 :(得分:3)
ADF模型生命周期阶段:
请注意,在某些情况下(例如模式对话框),在呈现页面后,以下代码不一定会触发:
public void afterPhase(PagePhaseEvent pagePhaseEvent) {
if (pagePhaseEvent.getPhaseId() == Lifecycle.PREPARE_RENDER_ID) {
injectRedirect();
}
}
这可以防止服务器代码在呈现文档后立即检查af:document。例如,以下内容将失败,因为没有可用的文档:
return context.getViewRoot().getChildren().get(0).getClientId().equals("doc0");
答案 1 :(得分:3)
ADF initContext和prepareModel,因为它们都通过执行商务服务来准备数据
这不太正确。 initContext
设置BindingContext,确保初始化DataBindings.cpx
的内容,并准备页面的绑定容器。 prepareModel
是数据查询的执行点。
Timo's answer显示的另一个执行点是PrepareRender
。但建议保留迭代器默认设置,这是“延迟”,在这种情况下,只有那些具有UI依赖性的刷新和查询迭代器。