Olá, estou encontrando dificuldades em chamar um dialogo primefaces de outro arquivo. Estou usando o include, mas no console do navegador aparece a mensagem de erro que o widgetVar não foi localizado.
Alguém sabe como resolver isso?
Tem código ou só tá criando na imaginação mesmo?
Esse é o List.xhtml
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:p=“http://primefaces.org/ui”
template="/WEB-INF/template.xhtml">
<ui:define name="title">
<h:outputText value="#{bundle.ListUsuarioTitle}"></h:outputText>
</ui:define>
<ui:define name="content">
<h:form id="UsuarioListForm" >
<p:panel header="#{bundle.ListUsuarioTitle}">
<p:dataTable id="datalist" value="#{usuarioController.items}" var="item"
selectionMode="single" selection="#{usuarioController.selected}"
paginator="true"
rowKey="#{item.userCodigo}"
rows="10"
rowsPerPageTemplate="10,20,30,40,50"
>
<p:ajax event="rowSelect" update="createButton viewButton editButton deleteButton"/>
<p:ajax event="rowUnselect" update="createButton viewButton editButton deleteButton"/>
<p:column>
<f:facet name="header">
<h:outputText value="#{bundle.ListUsuarioTitle_userCodigo}"/>
</f:facet>
<h:outputText value="#{item.userCodigo}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{bundle.ListUsuarioTitle_userUsuario}"/>
</f:facet>
<h:outputText value="#{item.userUsuario}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="#{bundle.ListUsuarioTitle_userSenha}"/>
</f:facet>
<h:outputText value="#{item.userSenha}"/>
</p:column>
<f:facet name="footer">
<p:commandButton id="createButton" icon="ui-icon-plus" value="#{bundle.Create}" actionListener="#{usuarioController.prepareCreate}" update=":UsuarioCreateForm" oncomplete="PF('UsuarioCreateDialog').show()" />
<p:commandButton id="viewButton" icon="ui-icon-search" value="#{bundle.View}" update=":UsuarioViewForm" oncomplete="PF('UsuarioViewDialog').show()" disabled="#{empty usuarioController.selected}" />
<p:commandButton id="editButton" icon="ui-icon-pencil" value="#{bundle.Edit}" update=":UsuarioEditForm" oncomplete="PF('UsuarioEditDialog').show()" disabled="#{empty usuarioController.selected}" />
<p:commandButton id="deleteButton" icon="ui-icon-trash" value="#{bundle.Delete}" actionListener="#{usuarioController.destroy}" update=":growl,datalist" disabled="#{empty usuarioController.selected}"/>
</f:facet>
</p:dataTable>
</p:panel>
</h:form>
<ui:include src="Create.xhtml"/>
<ui:include src="Edit.xhtml"/>
<ui:include src="View.xhtml"/>
</ui:define>
</ui:composition>
Este é o Create.xhtml
<ui:composition xmlns=“http://www.w3.org/1999/xhtml”
xmlns:h=“http://java.sun.com/jsf/html”
xmlns:f=“http://java.sun.com/jsf/core”
xmlns:ui=“http://java.sun.com/jsf/facelets”
xmlns:p=“http://primefaces.org/ui”
template="/WEB-INF/template.xhtml">
<ui:define name="content">
<p:dialog widgetVar="UsuarioCreateDialog" modal="true" responsive="true" resizable="false" header="#{bundle.CreateUsuarioTitle}" visible="true">
<h:form id="UsuarioCreateForm">
<h:panelGroup id="display">
<p:panelGrid columns="2" rendered="#{usuarioController.selected != null}">
<p:outputLabel value="#{bundle.CreateUsuarioLabel_userCodigo}" for="userCodigo" />
<p:inputText id="userCodigo" value="#{usuarioController.selected.userCodigo}" title="#{bundle.CreateUsuarioTitle_userCodigo}" required="true" requiredMessage="#{bundle.CreateUsuarioRequiredMessage_userCodigo}"/>
<p:outputLabel value="#{bundle.CreateUsuarioLabel_userUsuario}" for="userUsuario" />
<p:inputText id="userUsuario" value="#{usuarioController.selected.userUsuario}" title="#{bundle.CreateUsuarioTitle_userUsuario}" required="true" requiredMessage="#{bundle.CreateUsuarioRequiredMessage_userUsuario}"/>
<p:outputLabel value="#{bundle.CreateUsuarioLabel_userSenha}" for="userSenha" />
<p:inputText id="userSenha" value="#{usuarioController.selected.userSenha}" title="#{bundle.CreateUsuarioTitle_userSenha}" required="true" requiredMessage="#{bundle.CreateUsuarioRequiredMessage_userSenha}"/>
</p:panelGrid>
<p:commandButton actionListener="#{usuarioController.create}" value="#{bundle.Save}" update="display,:UsuarioListForm:datalist,:growl" oncomplete="handleSubmit(args,'UsuarioCreateDialog');"/>
<p:commandButton value="#{bundle.Cancel}" onclick="UsuarioCreateDialog.hide()"/>
</h:panelGroup>
</h:form>
</p:dialog>
</ui:define>
</ui:composition>
E o que não funciona? O que dá erro?
Não abre os diálogos, no console do navegador dá a mensagem de erro que widgetVar não foi localizado.
Fica muito difícil você se ajudar e postar a mensagem do erro?
Tem alguma ideia do que possa ser???
Única coisa que me ocorre é que o dialog está fora do form. mas, não me recordo se é isso.
Faz séculos que não mexo com JSF.
Por favor detalha/mostra o arquivo que o metodo onclick esta chamando.
Acho que nem precisa, esta faltando ele colocar o PF nesse onclick que voce mencionou, apesar que esta dando erro no show também e nesse caso é hide
Única coisa que me ocorre é que o dialog está fora do form. mas, não me recordo se é isso.
Faz séculos que não mexo com JSF.
Pode ficar fora do form, é até uma boa prática isso.
Para não trabalhar em cima de achismos por isso que pedi os demais arquivos.
<p:commandButton value="#{bundle.Cancel}" onclick=“UsuarioCreateDialog.hide()”/>
Isso é um botão que cancela a operação fechando o dialogo. O estranho é que deixando o código todo em um arquivo só funciona corretamente, mas vai me causar muita repetição de código.