Bom dia pessoal.
Tenho uma pagina de clientes com um botão incluir, ao o botão abre um popup e neste popup, preciso que chegem alguns parametros vindos do <f:setPropertyActionListener do botão, no entanto, os parametros não chegam no popup.
Inclui um println no metodo do bean, e o resultado no bean é o parametro setado corretamente.
O que pode haver de errado na chamada do popup pelo botão?
clientes.xhtml:
<p:panel style=" font-size: small">
<p:commandButton actionListener="#{clientesBean.startInclui}" icon="ui-icon-plusthick"
ajax="true" value="incluir" onsuccess="dlg1.show();">
<f:setPropertyActionListener target="#{clientesBean.empresa}" value="#{loginBean.empresa}"/>
</p:commandButton>
</p:panel>
....
<p:dialog header="Inclusão de clientes" widgetVar="dlg1" resizable="false" modal="true" closable="false">
<h:form id="formInclui">
<ui:include src="clientesInclui.xhtml"/>
</h:form>
</p:dialog>
clientesInclui.xhtml:
<h:form id="formInclui">
<div align="center">
<h:outputText style="color:red" value="* campo obrigatorio"/>
<br/>
<h:panelGrid columns="3" cellpadding="5">
<h:outputLabel style="font-size: small" for="nome" value="nome:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.nome}"
id="nome" label="nome" />
<h:outputText value="*" style="color:red"/>
<h:outputLabel style="font-size: small" for="endereco" value="endereco:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.endereco}"
id="endereco" label="endereco" />
<h:outputText value="" style="color:red"/>
<h:outputLabel style="font-size: small" for="numero" value="numero:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.numero}"
id="numero" label="numero" />
<h:outputText value="" style="color:red"/>
<h:outputLabel style="font-size: small" for="estado" value="UF:" />
<p:selectOneMenu style="font-size: small" value="#{clientesBean.cliente.acsEstado}" id="estado" label="estado">
<f:selectItem value="#{clientesBean.empresa.acsEstado}" itemLabel="#{clientesBean.empresa.acsEstado.uf}"/>
<f:selectItems value="#{clientesBean.estados}" var="estado" itemLabel="#{estado.uf}" itemValue="#{estado}"/>
</p:selectOneMenu>
<h:outputText value="*" style="color:red"/>
<h:outputLabel style="font-size: small" for="empresa" value="empresa:" />
<p:inputText size="9" style="font-size: small" value="#{clientesBean.empresa.fantasia}"
id="empresa" label="empresa" />
<h:outputText value="" style="text-decoration-color: red"/>
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton id="submitButton" icon="ui-icon-search" value="pesquisar" ajax="true"
update=":formCliente:tabelaClientes" oncomplete="dlg1.hide();" action="#{clientesBean.incluiCliente}">
<f:setPropertyActionListener target="#{clientesBean.empresa}" value="#{loginBean.empresa}"/>
</p:commandButton>
<p:commandButton id="cancelButton" icon="ui-icon-close" value="cancelar" ajax="true" oncomplete="dlg1.hide();">
</p:commandButton>
</h:panelGrid>
</div>
</h:form>
ClientesBean.startInclui:
public void startInclui() {
System.out.println("ClientesBean.startInclui(): ");
System.out.println("ClientesBean.startInclui() - empresa: " + empresa.getFantasia());
popup = "clientesInclui.xhtml";
}
Conseguem ajudar?
Tentou dar um update nele?
Rodrigo, fiz o update no form do popup pelo botão:
<p:commandButton actionListener="#{clientesBean.startInclui}" icon="ui-icon-plusthick"
update="formInclui" ajax="true" value="incluir" onsuccess="dlg1.show();">
<f:setPropertyActionListener target="#{clientesBean.empresa}" value="#{loginBean.empresa}"/>
</p:commandButton>
mas não funcionou, os parametros ainda não chegam no popup
alguém consegue ajudar nisso?
Para update no primefaces 3.5 a referência do form tem que conter":form"
<p:commandButton actionListener="#{clientesBean.startInclui}" icon="ui-icon-plusthick"
update=":formInclui" ajax="true" value="incluir" onsuccess="dlg1.show();">
<f:setPropertyActionListener target="#{clientesBean.empresa}" value="#{loginBean.empresa}"/>
</p:commandButton>
Pessoal, obrigado pela ajuda.
Consegui resolver, mas só funcionou sem o include da pagina clientesInclui.xhtml, tive que transcrever o código para o dialog na pagina clientes.xhtml, além disso, foi necessário usar o process="@this" no commandButton.
o código da pagina clientes.xhtml:
<ui:composition template="principal.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">
<ui:define name="principal">
<h:head>
</h:head>
<h:body>
<h:form prependId="false" id="formCliente">
<p:panel style=" font-size: small">
<p:commandButton icon="ui-icon-search" value="pesquisar" onclick="dlg.show();"/>
<p:commandButton action="#{clientesBean.startInclui}" icon="ui-icon-plusthick"
process="@this" update=":formInclui" ajax="true" value="incluir" onclick="dlg1.show();">
<f:setPropertyActionListener target="#{clientesBean.empresa}" value="#{loginBean.empresa}"/>
</p:commandButton>
</p:panel>
<p:dataTable style="font-size:small" id="tabelaClientes" var="iten" value="#{clientesBean.listClientes}"
paginator="false" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<f:facet name="header">
CLIENTES
</f:facet>
<p:column>
<f:facet name="header">
<h:outputText value="Acoes"/>
</f:facet>
<p:commandButton icon="ui-icon-pencil"/>
<p:commandButton icon="ui-icon-trash"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="NomeCliente"/>
</f:facet>
<h:outputText value="#{iten.nome}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="DDD" />
</f:facet>
<h:outputText value="#{iten.ddd}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Telefone" />
</f:facet>
<h:outputText value="#{iten.telefone}" />
</p:column>
<p:column>
<f:facet name="header">
<h:outputText value="Bairro"/>
</f:facet>
<h:outputText value="#{iten.bairro}"/>
</p:column> >
<p:column>
<f:facet name="header">
<h:outputText value="Endereço"/>
</f:facet>
<h:outputText value="#{iten.endereco}"/>
</p:column>
</p:dataTable>
</h:form>
<!-- popups -->
<h:form id="formConsulta">
<p:dialog header="Consulta de clientes" widgetVar="dlg" resizable="false" modal="true" closable="false">
<ui:include src="clientesConsulta.xhtml"/>
</p:dialog>
</h:form>
<p:dialog dynamic="true" header="Inclusão de clientes" widgetVar="dlg1" resizable="false" modal="true" closable="false">
<h:form id="formInclui">
<div align="center">
<h:outputText style="color:red" value="* campo obrigatorio"/>
<br/>
<h:panelGrid id="panel" columns="3" cellpadding="5">
<h:outputLabel style="font-size: small" for="nome" value="nome:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.nome}"
id="nome" label="nome" />
<h:outputText value="*" style="color:red"/>
<h:outputLabel style="font-size: small" for="tipo" value="F/J:" />
<p:selectOneMenu style="font-size: small" value="#{clientesBean.cliente.acsTipoPessoa}" id="tipo" label="tipo">
<f:selectItem itemValue="" itemLabel="--Selecione--"/>
<f:selectItems value="#{clientesBean.tipoPessoa}" var="tipo" itemLabel="#{tipo.descricao}" itemValue="#{tipo}"/>
</p:selectOneMenu>
<h:outputText value="*" style="color:red"/>
<h:outputLabel style="font-size: small" for="documento" value="CPF/CNPJ:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.cpfCnpj}"
id="documento" label="documento" />
<h:outputText value="" style="color:red"/>
<h:outputLabel style="font-size: small" for="endereco" value="endereco:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.endereco}"
id="endereco" label="endereco" />
<h:outputText value="" style="color:red"/>
<h:outputLabel style="font-size: small" for="numero" value="numero:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.numero}"
id="numero" label="numero" />
<h:outputText value="" style="color:red"/>
<h:outputLabel style="font-size: small" for="complemento" value="complemento:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.complemento}"
id="complemento" label="complemento" />
<h:outputText value="" style="color:red"/>
<h:outputLabel style="font-size: small" for="bairro" value="bairro:" />
<p:inputText style="font-size: small" value="#{clientesBean.cliente.bairro}"
id="bairro" label="bairro" />
<h:outputText value="" style="color:red"/>
<h:outputLabel style="font-size: small" for="estado" value="UF:" />
<p:selectOneMenu style="font-size: small" value="#{clientesBean.cliente.acsEstado}"
id="estado" label="estado">
<f:selectItem itemValue="#{clientesBean.empresa.acsEstado}" itemLabel="#{clientesBean.empresa.acsEstado.uf}"/>
<f:selectItems value="#{clientesBean.estados}" var="estado" itemLabel="#{estado.uf}" itemValue="#{estado}"/>
</p:selectOneMenu>
<h:outputText value="*" style="color:red"/>
<h:outputLabel style="font-size: small" for="cidade" value="cidade:" />
<p:selectOneMenu style="font-size: small" value="#{clientesBean.cliente.acsCidade}"
id="cidade" label="cidade">
<f:selectItem itemValue="#{clientesBean.empresa.acsEstado}" itemLabel="#{clientesBean.empresa.acsCidade.cidade}"/>
<f:selectItems value="#{clientesBean.cidades}" var="cidade" itemLabel="#{cidade.cidade}" itemValue="#{cidade}"/>
</p:selectOneMenu>
<h:outputText value="*" style="color:red"/>
<h:outputLabel style="font-size: small" for="telefone" value="Telefone:" />
<p:inputText style="font-size:small; size:9px " value="#{clientesBean.telefone}"
id="telefone" label="telefone" />
<h:outputText value="" style="text-decoration-color:red"/>
<h:outputLabel style="font-size: small" for="observacao" value="observacao:" />
<p:inputTextarea style="font-size: small" value="#{clientesBean.empresa.fantasia}"
id="empresa" label="empresa" />
<h:outputText value="" style="text-decoration-color:red"/>
</h:panelGrid>
<h:panelGrid columns="2">
<p:commandButton id="submitButton" icon="ui-icon-search" value="pesquisar" ajax="true"
update=":formCliente:tabelaClientes" oncomplete="dlg1.hide();" action="#{clientesBean.listCliente}">
<f:setPropertyActionListener target="#{clientesBean.empresa}" value="#{loginBean.empresa}"/>
</p:commandButton>
<p:commandButton id="cancelButton" icon="ui-icon-close" value="cancelar" ajax="true" oncomplete="dlg1.hide();">
</p:commandButton>
</h:panelGrid>
</div>
</h:form>
</p:dialog>
</h:body>
</ui:define>
</ui:composition>