2015-04-26 3 views
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. Мое сомнение не отложено = «true», он не будет включать страницу, когда я нажимаю обновленную страницу, она отлично работает. В противном случае givent defferred = «true» работает нормально.Интерфейсы Выходная панель deffered = true

+0

@mss Arul Когда вы пытаетесь обновить '' contentOutputPanelId' вашего contentOutputPanelId' является не загружается. Это так? –

ответ

2

Вы оправданной в своем подозрении:

ui:include является taghandler, а p:outputpanel является UIComponent. Обработчик тега оценивается и разрешается на этапе времени построения вида, то есть когда настраивается дерево компонентов представления (в основном, решение о том, что на самом деле собирается , должно быть на странице). Компонент, с другой стороны, оценивается в вид вынести, которые в основном только имеет отношение к интерпретации разметки

Что это означает для вас является то, что в то время ui:include проводится оценка, тем p:outputPanel не на картинке и, следовательно, не может повлиять на ее обработку. Включение произойдет.

Taghandlers оценивается только на свежей загрузке страницы, однако, не на постбэк, так что это действительно не имеет значения больше в тот момент

Смежные вопросы