Primefaces - Dúvida componente dialog

9 respostas
T

Boa tarde.

É possível usar uma página externa em um <p:dialog /> ?
Eu quero fazer uma tela de cadastro dentro desse dialog, como se fosse um FancyBox ou SexyLightBox, por exemplo.
Ao clicar no botão “Inserir”, abriria uma tela cadastro.xhtml.

Att.

9 Respostas

J

Dentro do p:dialog que abre ao clicar em “Inserir”, coloque:

&lt;ui:define name="content"&gt; &lt;ui:include src=".../cadastro.xhtml"/&gt; &lt;/ui:define&gt;

T

vc sabe pq o seguinte dialog nao funciona??

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"&gt;

&lt;h:head&gt;
&lt;link type="text/css" rel="stylesheet"
	href="#{request.contextPath}/resources/css/fontes.css" /&gt;
&lt;link type="text/css" rel="stylesheet"
	href="#{request.contextPath}/resources/css/estilo.css" /&gt;
&lt;/h:head&gt;

&lt;ui:composition template="/WEB-INF/templates/template.xhtml"&gt;
   &lt;ui:define name="content"&gt;
      &lt;h:form&gt;
         &lt;p:commandButton id="TesteButton" value="TesteButton" onclick="dlg1.show();" type="button" /&gt;
.
.
.

      &lt;/h:form&gt;

      &lt;p:dialog id="basicDialog" header="Basic Dialog" widgetVar="dlg1"&gt;
         &lt;h:outputText value="Resistance to PrimeFaces is futile!" /&gt;
      &lt;/p:dialog&gt;
   &lt;/ui:define&gt;
&lt;/ui:composition&gt;
&lt;/html&gt;
C

O dialog não deveria ficar antes do </h:form>?

T

coloquei antes do </h:form> mas ainda não rolou…

C
Testa assim (Tinha errado uma coisa e editei)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:ui="http://java.sun.com/jsf/facelets"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"  
    xmlns:p="http://primefaces.org/ui">  
  
<h:head>  
<link type="text/css" rel="stylesheet"  
    href="#{request.contextPath}/resources/css/fontes.css" />  
<link type="text/css" rel="stylesheet"  
    href="#{request.contextPath}/resources/css/estilo.css" />  
</h:head>  

<h:form>    

<ui:composition template="/WEB-INF/templates/template.xhtml">  

   <ui:define name="content">  

         <p:commandButton id="TesteButton" value="TesteButton" onclick="dlg1.show();" type="button" />  
  
      <p:dialog id="basicDialog" header="Basic Dialog" widgetVar="dlg1">  
         <h:outputText value="Resistance to PrimeFaces is futile!" />  
      </p:dialog>  

   </ui:define> 

</ui:composition>  

</h:form>  
</html>
T

ainda nao… ;S
será que eh algum problema no template ?

T

Por que nesse exemplo funciona?

&lt;?xml version='1.0' encoding='UTF-8' ?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui"&gt;

&lt;h:head&gt;
	&lt;title&gt;Facelet Title&lt;/title&gt;
&lt;/h:head&gt;
&lt;h:body&gt;
	&lt;h:form id="mainForm" styleClass="mainForm" prependId="false"&gt;
		&lt;h:panelGrid columns="1" cellpadding="5"&gt;
			&lt;p:commandButton value="Basic" onclick="dlg1.show();" type="button" /&gt;

			&lt;p:commandButton value="Modal" onclick="dlg2.show();" type="button" /&gt;

			&lt;p:commandButton value="Effects" onclick="dlg3.show();" type="button" /&gt;
		&lt;/h:panelGrid&gt;

		&lt;p:dialog header="Basic Dialog" widgetVar="dlg1"&gt;
			&lt;h:outputText value="Resistance to PrimeFaces is futile!" /&gt;
		&lt;/p:dialog&gt;

		&lt;p:dialog header="Modal Dialog" widgetVar="dlg2" modal="true"
			height="200"&gt;
			&lt;h:outputText value="This is a Modal Dialog." /&gt;
		&lt;/p:dialog&gt;

		&lt;p:dialog header="Effect Dialog" widgetVar="dlg3" showEffect="bounce"
			hideEffect="explode" height="200"&gt;
			&lt;h:outputText value="This dialog has cool effects." /&gt;
		&lt;/p:dialog&gt;
	&lt;/h:form&gt;
&lt;/h:body&gt;
&lt;/html&gt;
J

Consegui resolver esse problema? estou tendo o mesmo, pode me ajudar?

B

Por favor, não usem include. Procure por composite components em JSF, no Netbeans é muito simples de se fazer.

Veja o link abaixo:
Componentes Customizados no JSF | Collins Daniel

é a solução mais elegante.

Criado 14 de março de 2012
Ultima resposta 23 de nov. de 2012
Respostas 9
Participantes 5