Primefaces Outputpanel deferred = true

问题描述 投票:1回答:1
<h:form id="linkpanel">
<p:commandLink id="TestPanle" value="Test" update="contentOutputPanelId"/>
</h:form>
...
<h:form id="reRenderForm">
 <p:outputPanel id="contentOutputPanelId" deferred="true"  style="padding:5px;">
  <ui:include src="/pages/test.xhtml"/>
</p:outputPanel>
<h:form>

当我按下commandLink按钮时,它将更新和contentOutputPanelId并包含test.xhtml。我怀疑是没有deferred =“true”它不会包括页面当我按下刷新页面它工作正常。否则givent deferred =“true”它工作正常。

jsf primefaces
1个回答
2
投票

你的怀疑是合理的:

ui:include是一个taghandler,而p:outputpanelUIComponent。标签处理程序在视图构建时进行评估和解析,即在设置视图的组件树时(基本上,决定页面中实际的内容)。另一方面,该组件在视图渲染时进行评估,这主要与标记解释有关

这对你意味着什么,因为在评估ui:include时,p:outputPanel不在图片中,因此,不能影响其处理。包含将发生。

Taghandler仅在新页面加载时进行评估,而不是在回发时进行评估,因此在那时它不再重要

© www.soinside.com 2019 - 2024. All rights reserved.