2015-01-20 1 views
0

Недавно я обновил Primefaces с 4.0 до 5.1 и после этого диалоговые окна не отображаются после нажатия команды commandButton. Он работает с dynamic = "false", но мне нужно, чтобы он был ленивым. ExampleBean - sessionScoped, и я использую JSF 2.2. Может ли кто-нибудь помочь мне решить эту проблему?Диалоговое окно «Графики поверхностей» с ui: не работает после обновления PF от 4.0 до 5.1

<ui:composition template="/template/common/pagelayout.xhtml" 
    xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:f="http://xmlns.jcp.org/jsf/core" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
    xmlns:c="http://xmlns.jcp.org/jsp/jstl/core" 
    xmlns:p="http://primefaces.org/ui" 
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
    xmlns:ez="http://xmlns.jcp.org/jsf/composite"> 

    <ui:define name="content">  
     <h:form id="form"> 
      <p:commandButton type="button" value="Log" onclick="PF('dlgLog').show();" icon="botaoLog" /> 
     </h:form> 

     <p:dialog header="HEADER" widgetVar="dlgLog" resizable="false" modal="true" height="500" width="1000" dynamic="true"> 
      <ui:include src="logPage.xhtml"/> 
     </p:dialog> 
    </ui:define> 
</ui:composition> 

logPage.xhtml

<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://xmlns.jcp.org/jsf/html" 
    xmlns:f="http://xmlns.jcp.org/jsf/core" 
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets" 
    xmlns:p="http://primefaces.org/ui"> 

    <h:head> 
    </h:head> 

    <h:body> 
    <h:form id="formlog"> 
     <p:dataTable var="log" value="#{exampleBean.logs}" emptyMessage="Empty"> 

      <p:column headerText="Header1" width="10%"> 
       <h:outputText value="#{log.date}"> 
        <f:convertDateTime pattern="dd/MM/yyyy - HH:mm"/> 
       </h:outputText> 
      </p:column> 

      <p:column headerText="Header2" width="10%"> 
       <h:outputText value="#{log.op}" /> 
      </p:column> 

      <p:column headerText="Header3"> 
       <p:outputLabel value="#{log.name}"/> 
      </p:column> 

     </p:dataTable> 
    </h:form> 
    </h:body> 
</html> 
+0

Я думаю, вы должны сделать это ui: composition: http://stackoverflow.com/questions/4792862/how-to-include-another-xhtml-in-xhtml-using-jsf-2-0-facelets –

+0

Спасибо @ JaqenH'ghar. Пытался сделать это ui: состав, но это не сработало. Я вижу на спящем сгенерированном sql в консоли, что содержимое в странице logPage.xhtml загружается из db, но диалог все еще не отображается. – Vinicius

ответ

0

Наконец понял, что проблема была. Просто удалил тег <h:head> из logPage.xhtml, и он сработал! Не уверен, что я знаю причину, хотя, возможно, имеет какое-то отношение к <ui:include>, ожидая композиции, которая не должна иметь тег <h:head>.

0

Более конкретно, вы удалили тег h: head (and I found out ;-). Между версиями, которые вы использовали, PF создал собственный рендеринг h: head, который отличается от реализаций по умолчанию в библиотеках jsf кода, следовательно, разница в поведении (при условии, что ваш jsf impl остался прежним).

+0

Еще раз спасибо @Kukeltje! Не знал о h: рендере рендеринга. Я проверю это. – Vinicius

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

  • Нет связанных вопросов^_^