Duvida com Primefaces e JSF

7 respostas
vcsmetallica

Salva galera!!!

Seguinte galera, quando clico no p:commandButton dentro do p:dialog ele esta fechando o dialogo e não esta chamando metodo do meu Controle.

abaixo o meu fonte

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition template="./../../templates/template2.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.prime.com.tr/ui"
                xmlns:f="http://java.sun.com/jsf/core" >


    <ui:define name="content">
        <h:outputLabel value="#{clienteControle.titulo}" style="font-size: 24px; font-weight: bold"/>
        <p:spacer height="10" />
        <h:form>
            <div align="left">
                <p:commandButton value="#{clienteControle.novoRegistro}" actionListener="#{clienteControle.prepararAdicionarCliente}" update="infosCliente" oncomplete="dialogGerCliente.show()"/>
            </div>
            <p:spacer height="10" />
            <p:dataTable id="tabela" var="clientes" value="#{clienteControle.listarClientes}">

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Nome"/>
                    </f:facet>
                    <h:outputText value="#{clientes.nome}"/>
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Nome Fantasia"/>
                    </f:facet>
                    <h:outputText value="#{clientes.nomeFantasia}"/>
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Telefone"/>
                    </f:facet>
                    <h:outputText value="#{clientes.telefone}"/>
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Data de cadastro"/>
                    </f:facet>
                    <h:outputText value="#{clientes.dataCadastro}">
                        <f:convertDateTime pattern="dd/MM/yyyy"/>
                    </h:outputText>
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Email"/>
                    </f:facet>
                    <h:outputText value="#{clientes.email}"/>
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="CNPJ"/>
                    </f:facet>
                    <h:outputText value="#{clientes.cnpj}" />
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Tipo de Cliente"/>
                    </f:facet>
                    <h:outputText value="#{clientes.tipoCliente.descricao}"/>
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Alterar"/>
                    </f:facet>
                    <p:commandButton actionListener="#{clienteControle.prepararAlterarCliente}" value="Alterar" update="infosCliente" oncomplete="dialogGerCliente.show()"/>
                </p:column>
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Excluir"/>
                    </f:facet>
                    <p:commandButton actionListener="#{clienteControle.excluirCliente}" value="Excluir"/>
                </p:column>
            </p:dataTable>



        </h:form>

        <p:dialog header="#{clienteControle.titulo}" widgetVar="dialogGerCliente"  resizable="false" modal="true" showEffect="slide" width="500" height="500">
            <h:form>
                <h:panelGrid id="infosCliente" columns="2" style="margin-bottom:10px">

                    <h:outputLabel for="nome" value="Nome:" />
                    <h:inputText id="nome" value="#{clienteControle.cliente.nome}"/>


                    <h:outputLabel for="nomefantasia" value="Nome Fantasia:" />
                    <h:inputText id="nomefantasia" value="#{clienteControle.cliente.nomeFantasia}"/>


                    <h:outputLabel for="cnpj" value="CNPJ:" />
                    <h:inputText id="cnpj" value="#{clienteControle.cliente.cnpj}" required="true"/>


                    <h:outputLabel for="datacadastro" value="Data do Cadastro:" />
                    <p:calendar id="datacadastro" value="#{clienteControle.cliente.dataCadastro}" showOn="button" />


                    <h:outputLabel for="email" value="Email:" />
                    <h:inputText id="email" value="#{clienteControle.cliente.email}"/>


                    <h:outputLabel for="telefone" value="Telefone:" />
                    <h:inputText id="telefone" value="#{clienteControle.cliente.telefone}"/>

                    <f:facet name="footer"> 
                        <p:commandButton actionListener="#{clienteControle.adicionarCliente}" update="tabela" oncomplete="dialogGerCliente.hide();" value="Inserir Cliente"/>
                        <p:commandButton actionListener="#{clienteControle.alterarCliente}" update="tabela" oncomplete="dialogGerCliente.hide();"  value="Alterar Cliente"/>
                    </f:facet>
                </h:panelGrid>
            </h:form>
        </p:dialog>


    </ui:define>
</ui:composition>


//Metodo que eestou tentando chamar

 public void adicionarCliente(ActionEvent actionEvent) {
        try {
            ClienteDAO dao = new ClienteDAO();
            dao.salvar(cliente);
            this.addInfo("Cliente", Constantes.REGISTRO_ADICIONADO_OK);
        } catch (SViasException ex) {
            SViasLogger.logError("ClienteControle-adicionarCliente", ex);
            this.addError("Cliente", Constantes.REGISTRO_ADICIONADO_ERRO + ex.getMessage());
        }

    }

Onde estou errando? O que eu esqueci de colcocar?

Aproveitando a oportunidade, estou usando o um tipo de skin no prime faces, so que não esta aplicando nos componentes do JSF somente nos componentes do Prime faces. Configurei o web.xml como solicitado e nada.

Att

7 Respostas

A

deve estar sendo gerado um erro na saída do seu IDE, poste o erro que está aparecendo.

vcsmetallica

Entao, nao teve erro na saida.

A unica coisa que apareceu foi isso

AVISO: JSF1063: AVISO! Definindo valor de atributo não serializável em HttpSession (chave: clienteControle, classe do valor: br.com.ces.svias.controle.ClienteControle).

Att

R

não é erro, é pq esta tudo dentro do mesmo form.

A

rjbcordeiro, é verdade, agora que você falou que eu reparei, o dialog tem que estar no mesmo form da chamada dele, por isso não está funcionando.

vcsmetallica

Ai que esta. Quando eu coloco tudo dentro do mesmo form nao abre o meu p:dialog.

Att

Polverini

só uma pergunta o seu bean ta implementando Java.io.Serializable ?

vcsmetallica

Sim. estou serializando.

Criado 6 de agosto de 2011
Ultima resposta 9 de ago. de 2011
Respostas 7
Participantes 4