Datatable primefaces não retorna objeto ao selecionar linha

Amigos,

Esse código estava funcionando, não entendo porque agora parou de funcionar.
Quando eu clico no botão remover, ele me abre um pop-up perguntando se de fato a exclusão deve ocorrer. Só que ao confirmar, agora ele tenta excluir um objeto null, ou seja dá erro. Pq o Datatable está retornando null e não o objeto de fato?

Aqui está a declaração do datatable

<p:dataTable id="partidos" var="partido"
				value="#{partidosBean.listaPartidos}" rowKey="#{partido.id}"
				selection="#{partidosBean.partidoSelecionado}"
				selectionMode="single" style="width:60%">

Aqui o commandButton que deve abrir o pop-up

<p:commandButton id="btRemover" icon="ui-icon-trash"
							title="Remover" onclick="confirmaExclusao.show();">
						</p:commandButton>

Para todos os efeitos, segue o código inteiro:


<?xml version="1.0"  encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<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"
	xmlns:prog="http://prog.tiago.com.br"
	template="/WEB-INF/templates/default.xhtml">


	<ui:define name="conteudo">
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<prog:confirmarExclusaoPartidoDialog id="confirmarExclusaoPartido" />
		<prog:novoPartidoForm id="novoPartido" />


		<h:form id="formPrincipal">
			<p:growl id="growMensagens" showDetail="true" sticky="false"
				autoUpdate="false" life="3000" />
			<h:outputLabel value="Partidos políticos"
				style="font-weight:bold;font-size:20px" />
			<hr />
			<br />

			<p:dataTable id="partidos" var="partido"
				value="#{partidosBean.listaPartidos}" rowKey="#{partido.id}"
				selection="#{partidosBean.partidoSelecionado}"
				selectionMode="single" style="width:60%">

				<f:facet name="header">
            Aqui você pode editar, excluir e criar novos partidos políticos.
        </f:facet>

				<p:column headerText="Partido" style="width:40%">
            #{partido.partidoEleitoral} 
        </p:column>

				<p:column headerText="Sigla" style="width:10%">
            #{partido.sigla}
        </p:column>

				<p:column headerText="Código" style="width:10%">
            #{partido.codigoPartidario}
        </p:column>

				<p:column headerText="Ativo?" style="width:08%">
            #{partido.ativo? 'Sim':'Não'}
        </p:column>

				<p:column style="width:10%">
					<h:panelGroup layout="horizontal">
						<p:commandButton id="btEditar" icon="ui-icon-pencil"
							actionListener="#{partidosBean.citar}" title="Editar">
						</p:commandButton>
						<p:commandButton id="btRemover" icon="ui-icon-trash"
							title="Remover" onclick="confirmaExclusao.show();">
						</p:commandButton>
					</h:panelGroup>
				</p:column>
				<f:facet name="footer">
					<p:commandButton id="btNovo" value="Adicionar novo partido"
						icon="ui-icon-plusthick" oncomplete="novoPartidoDlg.show();"
						actionListener="#{partidosBean.criarNovoPartido}" />
				</f:facet>

			</p:dataTable>

		</h:form>
	</ui:define>
</ui:composition>

E por fim, o componente criado que de fato exclui o objeto

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:ui="http://java.sun.com/jsf/facelets">

<ui:component>
	<!-- Confirmação de exclusão de partido político -->
	<h:form id="formExcluirPartido">

		<p:confirmDialog id="confirmaExclusao" appendToBody="true"
			message="Deseja realmente excluir o partido selecionado?"
			header="Excluir partido" severity="alert"
			widgetVar="confirmaExclusao">

			<p:commandButton id="confirm" value="Sim, desejo"
				actionListener="#{partidosBean.citar}"
				oncomplete="confirmaExclusao.hide();"
				update=":formPrincipal:growMensagens,:formPrincipal:partidos" />
			<p:commandButton id="decline" value="Não, me enganei"
			actionListener="#{partidoBean.citar}"
				onclick="confirmaExclusao.hide()" type="button" />
		</p:confirmDialog>

	</h:form>
</ui:component>
</html>

Agradeço qualquer ajuda!!!

Você mudou alguma coisa lá no DAO
porque que eu falo

no método delete/remover la no dao

você precisa fazer um find pelo id
e isso não deve esta ocorrendo, por isso o valor vem nulo

caso não tenha mudado nada

tente escrever em tela o id da linha selecionada

Att

[quote=tmvolpato]Você mudou alguma coisa lá no DAO
porque que eu falo

no método delete/remover la no dao

você precisa fazer um find pelo id
e isso não deve esta ocorrendo, por isso o valor vem nulo

caso não tenha mudado nada

tente escrever em tela o id da linha selecionada

Att
[/quote]

Valeu amigo, mas quando eu debugo, percebo que ele não tá pegando o id, nem o objeto.
Se eu entrar com o id manualmente funciona, mas pq o objeto não tá sendo recuperado?

seu dialog esta em outra página?
ele funcionava assim antes em outra?

[quote]seu dialog esta em outra página?
ele funcionava assim antes em outra?[/quote]

Sim, o meu dialog está em outra página. Antes, quando estava num outro form, mas dentro do mesmo .xhtml funcionava.
Mesmo que eu coloque o form dentro da mesma página, não funciona mais. :roll:

eu tentei usar dialog fora da página e sem sucesso

mas nesse seu caso eu percebi o seguinte
só para testar volte seu dialog para a mesma página
dai depois que funciona você tenta trabalhar desse jeito

vamos lá então

segue o que deve ser mudado
Antes

<p:commandButton id="btRemover" icon="ui-icon-trash" title="Remover" onclick="confirmaExclusao.show();"> </p:commandButton>

Depois

<p:commandButton id="btRemover" icon="ui-icon-trash" title="Remover" onclick="confirmaExclusao.show();"> <f:setPropertyActionListener target="#{partidosBean.partidoSelecionado}" value="#{partido}" /> </p:commandButton>

Desse jeito você pega o item selecionado

Testa ai

Fiz o que você me pediu.

Meu código ficou assim:


<?xml version="1.0"  encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<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"
	xmlns:prog="http://prog.tiago.com.br"
	template="/WEB-INF/templates/default.xhtml">


	<ui:define name="conteudo">
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	
		<prog:novoPartidoForm id="novoPartido" />


		<h:form id="formPrincipal">
			<p:growl id="growMensagens" showDetail="true" sticky="false"
				autoUpdate="false" life="3000" />
			<h:outputLabel value="Partidos políticos"
				style="font-weight:bold;font-size:20px" />
			<hr />
			<br />

			<p:dataTable id="partidos" var="partido"
				value="#{partidosBean.listaPartidos}" rowKey="#{partido.id}"
				selectionMode="single" style="width:60%">

				<f:facet name="header">
            Aqui você pode editar, excluir e criar novos partidos políticos.
        </f:facet>

				<p:column headerText="Partido" style="width:40%">
            #{partido.partidoEleitoral} 
        </p:column>

				<p:column headerText="Sigla" style="width:10%">
            #{partido.sigla}
        </p:column>

				<p:column headerText="Código" style="width:10%">
            #{partido.codigoPartidario}
        </p:column>

				<p:column headerText="Ativo?" style="width:08%">
            #{partido.ativo? 'Sim':'Não'}
        </p:column>

				<p:column style="width:10%">
					<h:panelGroup layout="horizontal">
						<p:commandButton id="btEditar" icon="ui-icon-pencil"
							actionListener="#{partidosBean.citar}" title="Editar">
						</p:commandButton>
						<p:commandButton id="btRemover" icon="ui-icon-trash"
							title="Remover" onclick="confirmaExclusao.show();">
							<f:setPropertyActionListener target="#{partidosBean.partidoSelecionado}" value="#{partido}" /> 
						</p:commandButton>
					</h:panelGroup>
				</p:column>
				<f:facet name="footer">
					<p:commandButton id="btNovo" value="Adicionar novo partido"
						icon="ui-icon-plusthick" oncomplete="novoPartidoDlg.show();"
						actionListener="#{partidosBean.criarNovoPartido}" />
				</f:facet>

			</p:dataTable>

		</h:form>

		<h:form id="formExcluirPartido">

			<p:confirmDialog id="confirmaExclusao" appendToBody="true"
				message="Deseja realmente excluir o partido selecionado?"
				header="Excluir partido" severity="alert"
				widgetVar="confirmaExclusao">

				<p:commandButton id="confirm" value="Sim, desejo"
					actionListener="#{partidosBean.citar}"
					oncomplete="confirmaExclusao.hide();"
					update=":formPrincipal:growMensagens,:formPrincipal:partidos" />
				<p:commandButton id="decline" value="Não, me enganei"
					actionListener="#{partidoBean.citar}"
					onclick="confirmaExclusao.hide()" type="button" />
			</p:confirmDialog>

		</h:form>
	</ui:define>
</ui:composition>

No entanto, continua sem funcionar. O retorno continua sendo null. :roll:

prog.tiago vo te ajuda o que ta acontecendo e erro de validação
e te explica isso vai demora muito vamos foca no seu problema

vc tem uma tem uma tabela e dentro dela um o p:commandButton com o f:setPropertyActionListener

digamos que ao ocorrer erro na tela o PrimeFaces não sabe o que submeter no formulário podemos ajulado com uma propriedade do p:commandButton o process
nele vc coloca o Id do componente que vc quer submeter no caso de DataTables id o da propria

Vo coloca os códigos aqui também pra facilita



<p:dataTable id="tablaProcedimento" value="#{procedimentoMb.proList}" var="procedimento"
                      selection="#{procedimentoMb.procedimento}" >

         <p:column >
               <f:facet name="header">
                     <h:outputText value="Código"  />
               </f:facet>
                     <h:outputText value="#{procedimento.codigo}" />
          </p:column>

         <p:column style=" width: 60px">
               <p:commandLink process="@this tablaProcedimento"  action="#{procedimentoMb.chamarProcediemtosPrarametros()}">
                        <h:graphicImage title="Vsualizar" url="/images/icons/edit-18.png" />
                      <f:setPropertyActionListener value="#{procedimento}"   target="#{procedimentoMb.procedimento}" />
               </p:commandLink>
          </p:column>
   
</p:dataTable>

aqui esta uma simples tabela so com o nessesario pra ela funciona veja que o commandLink temos um

process="@this tablaProcedimento" 

ele deve ser o Id da tabela se precisa adiciona mais basta dar um espaço e ir adicionando os ID/s

Marque como resolvido

Valeu Alcir,

Mas continua sem funcionar. Vou dar um banho de sal grosso nesse código hein.

Abraço

Boa tarde amigos,

Consegui resolver o meu problema :smiley:

Utilizei o <f:selectPropertyActionListener/> para enviar os dados da view ao MB.

Vou postar o código inteiro para vocês verem:

partidos.xhtml

[code]<?xml version="1.0" encoding="UTF-8" ?>

<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
xmlns:prog=“http://prog.tiago.com.br
template="/WEB-INF/templates/default.xhtml">

<ui:define name="conteudo">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

	<!-- COMPONENTES EXTERNOS -->
	
	<prog:novoPartidoForm id="novoPartido" />
	<prog:confirmarExclusaoPartidoDialog id="confirmarExclusao" />


	<!-- FORMULÁRIO PRINCIPAL -->
	
	<h:form id="formPrincipal">

		<p:growl id="growMensagens" showDetail="true" sticky="false"
			autoUpdate="false" life="3000" />

		<h:outputLabel value="Partidos políticos"
			style="font-weight:bold;font-size:20px" />

		<hr />

		<br />

		<p:dataTable id="partidos" var="partido"
			value="#{partidosBean.listaPartidos}" style="width:60%">

			<f:facet name="header">
				Aqui você pode editar, excluir e criar novos partidos políticos.
    		</f:facet>

			<p:column headerText="Partido" style="width:40%">
        		#{partido.partidoEleitoral} 
    		</p:column>

			<p:column headerText="Sigla" style="width:10%">
        		#{partido.sigla}
    		</p:column>

			<p:column headerText="Código" style="width:10%">
        		#{partido.codigoPartidario}
    		</p:column>

			<p:column headerText="Ativo?" style="width:08%">
        		#{partido.ativo? 'Sim':'Não'}
    		</p:column>

			<p:column style="width:10%">

				<h:panelGroup layout="horizontal">

					<p:commandButton id="btEditar" icon="ui-icon-pencil"
						action="#{partidosBean.citar}" title="Editar">

						<f:setPropertyActionListener value="#{partido}"
							target="#{partidosBean.partidoSelecionado}">
						</f:setPropertyActionListener>

					</p:commandButton>

					<p:commandButton id="btRemover" icon="ui-icon-trash"
						action="#{partidosBean.citar}" title="Remover"
						onclick="confirmaExclusao.show();">

						<f:setPropertyActionListener value="#{partido}"
							target="#{partidosBean.partidoSelecionado}">
						</f:setPropertyActionListener>

					</p:commandButton>

				</h:panelGroup>

			</p:column>

			<f:facet name="footer">

				<p:commandButton id="btNovo" value="Adicionar novo partido"
					icon="ui-icon-plusthick" oncomplete="novoPartidoDlg.show();"
					actionListener="#{partidosBean.criarNovoPartido}">
				</p:commandButton>

			</f:facet>

		</p:dataTable>

	</h:form>

</ui:define>

</ui:composition>[/code]

confirmarExclusaoPartido.xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:ui="http://java.sun.com/jsf/facelets">

<ui:component>

	<!-- FORMULÁRIO PARA EXCLUSÃO DE PARTIDO -->

	<h:form id="formExcluirPartido">

		<p:confirmDialog id="confirmaExclusao" appendToBody="true"
			message="Deseja realmente excluir o partido selecionado?"
			header="Excluir partido" severity="alert"
			widgetVar="confirmaExclusao">

			<p:commandButton id="confirm" value="Sim, desejo"
				actionListener="#{partidosBean.removerPartido}"
				oncomplete="confirmaExclusao.hide();"
				update=":formPrincipal:growMensagens,:formPrincipal:partidos" />

			<p:commandButton id="decline" value="Não, me enganei"
				onclick="confirmaExclusao.hide()" type="button" />
		</p:confirmDialog>

	</h:form>
</ui:component>
</html>

Agradeço imensamente a ajuda de todos. Sem dúvidas, esse fórum está me ensinando e muito à desenvolver boas soluções.

Um forte abraço à cada um.

Tem como voce informar o melhor a resolução do teu problema. Por exemplo este metodo partidoBean.citar o que ele faz?

Pessoal sou novo no primefaces e estou com um problema.
To tentando criar a principio uma tela simples de um crud usando templates.
No caso tenho um xhtml principal com algumas divisoes e chamo as telas no centro da divisão.
Ate ai tudo bem, a grade é exibida com os dados do banco so que nela existem dois botões onde ou posso editar ou excluir o registro.
No caso sempre quando tento excluir ou editar o objeto retorna sempre null.
Detalhe é que se eu utilizar o objeto ouputtext da certo, mais quando coloco inputtext da null
Vou postar o codigo para facilitar.

Aqui é meu template

<?xml version="1.0" encoding="ISO-8859-1" ?>  
<!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: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">

    <f:view contentType="text/html">
        <h:head>
            <f:facet name="first">
                <meta content='text/html; charset=UTF-8' http-equiv="Content-Type"/>
                <title>Enquetes</title>
            </f:facet>
            <style type="text/css">
                body {background-color: #eeeeee; font-size: 12px}
                .semBorda tr, .semBorda td {  
                    border: none !important;  
                } 
            </style>
        </h:head>

        <h:body>            

            <div align="center">
                <h:form id="form">                    

                    <p:growl id="messages" showDetail="true"/> 

                    <p:layout style="min-width:720px;max-width:1020px;min-height:700px;max-height:700px" id="tabela"> <!-- style="min-width:1020px;max-width:1020px;min-height:600px">-->

                        <p:layoutUnit position="north" size="80"> 
                            <ui:insert name="cabecalho">
                                <ui:include src="/template/estrutura/cabecalho.xhtml" />
                            </ui:insert>  
                        </p:layoutUnit> 

                        <p:layoutUnit position="west" size="200px" resizable="true" closable="false" collapsible="true" effect="drop">  
                            <ui:insert name="menu">
                                <ui:include src="/menu/menu.xhtml" />
                            </ui:insert>                          
                        </p:layoutUnit>  

                        <p:layoutUnit position="center"> 
                            <ui:insert name="centro">

                            </ui:insert>
                        </p:layoutUnit> 

                        <p:layoutUnit position="south" closable="true" collapsible="true">
                            <ui:insert name="rodape">
                                <ui:include src="/template/estrutura/rodape.xhtml" />
                            </ui:insert> 
                        </p:layoutUnit>

                    </p:layout>

                    <ui:insert name="dialog">
                        
                    </ui:insert> 
                </h:form>
            </div>            
        </h:body>

    </f:view>

</html>

Enquete.xhtml

<?xml version='1.0' encoding='UTF-8' ?>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html 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"> 
    <f:view>

        <ui:composition template="/template/padrao.xhtml">  
            <ui:define name="centro">

                <p:dataTable id="dtEnq" var="enq" value="#{enqueteBean.listaEnquetes}" rowKey="#{enq.id_enquete}"
                             paginator="true" rows="15" rowsPerPageTemplate="5,10,15,20" 
                             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                             selectionMode="single" editable="true" selection="#{enqueteBean.selecaoEnquete}">
                    <f:facet name="header">  
                        Enquetes
                    </f:facet>

                    <p:ajax event="rowEdit" listener="#{enqueteBean.onEdit}" update=":form:messages" />  
                    <p:ajax event="rowEditCancel" listener="#{enqueteBean.onCancel}" update=":form:messages" /> 

                    <p:column headerText="Código" sortBy="#{enq.id_enquete}" filterBy="#{enq.id_enquete}" style="width:10%" >  
                        <h:outputText value="#{enq.id_enquete}" style="text-align:left"/>  
                    </p:column>  

                    <p:column headerText="Descrição" sortBy="#{enq.descricao}" filterBy="#{enq.descricao}">  
                        <h:outputText value="#{enq.descricao}" />  
                    </p:column>  

                    <p:column headerText="Status" sortBy="#{enq.status}" filterBy="#{enq.status}" style="width:10%">  
                        <h:outputText value="#{enq.status}" />  
                    </p:column>

                    <p:column style="width:70px"> 
                        <f:facet name="header">
                            <h:outputText value="Ação"/>
                        </f:facet> 
                        <p:commandLink id="edit" update=":form:carDetail"  oncomplete="carDialog.show()" value="Editar">  
                            <h:outputText styleClass="ui-icon ui-icon-search" style="margin:0 auto;" />   
                            <f:setPropertyActionListener value="#{enq}" target="#{enqueteBean.selecaoEnquete}" />  
                        </p:commandLink>                          
                        <h:outputText value="/"/>
                        <p:commandLink id="delete" update=":form:dtEnq" oncomplete="confirmation.show()" value="Excluir">  
                            <h:outputText styleClass="ui-icon ui-icon-search" style="margin:0 auto;" />   
                            <f:setPropertyActionListener value="#{enq}" target="#{enqueteBean.selecaoEnquete}" />  
                        </p:commandLink>                          
                    </p:column> 

                </p:dataTable>  

            </ui:define>


            <ui:define name="dialog">            
                <!--*******************************************-->
                <!--Tela de confirmação de exclusão do registro-->
                <!--*******************************************-->
                <p:confirmDialog message="Deseja realmente excluir este registro: #{enqueteBean.selecaoEnquete.id_enquete}?" hideEffect="explode" header="Excluindo Enquete" severity="alert" widgetVar="confirmation" modal="true">
                    <!--caso seja sim chamo o metodo excluir, e fecho o modal com o oncomplete, tenho o process que estou dizendo para processar o form, e update para atualizar a tabela-->
                    <p:commandButton id="btnSim" value="Sim" oncomplete="confirmation.hide();" actionListener="#{enqueteBean.excluirEnquete}" process="@form" update="tabela" />
                    <!--caso seja não somente fecha o modal-->
                    <p:commandButton id="btnNao" value="Não" onclick="confirmation.hide();" type="button"/>
                </p:confirmDialog>

                <!--*******************************************-->
                <!--Tela de Edição do registro-->
                <!--*******************************************-->
                <p:dialog header="Enquente" showEffect="fade" hideEffect="fade" modal="true"  
                          widgetVar="carDialog">  

                    <p:outputPanel id="carDetail" style="text-align:left;">  
                        <p:graphicImage id="carImage" value="/img/ajaxLoader.gif"/>  

                        <h:panelGrid  columns="2" cellpadding="5">  
                            <h:outputLabel for="txCod" value="Código: " />  
                            <h:inputText id="txCod" 
                                          value="#{enqueteBean.selecaoEnquete.id_enquete}" />  

                            <h:outputLabel for="txDesc" value="Descrição: " />  
                            <h:inputText id="txDesc" size="60"  
                                          value="#{enqueteBean.selecaoEnquete.descricao}" />  

                            <h:outputLabel for="txSt" value="Status: " size="10"/>  
                            <h:inputText id="txSt" value="#{enqueteBean.selecaoEnquete.status}" />                              
                        </h:panelGrid>  

                        <p:separator/>
                        
                        <p:outputPanel id="botoes" layout="block">
                            <p:panelGrid columns="2" styleClass="semBorda" cellpadding="5"> 
                                <p:commandButton value="Salvar" />
                                <p:commandButton value="Cancelar" onclick="carDetail.hide();"/>
                            </p:panelGrid>
                        </p:outputPanel>

                    </p:outputPanel>
                </p:dialog>
            </ui:define>

        </ui:composition>  

    </f:view> 
</html>

Meu MB EnqueteBean

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.enquete.menagedbean;

import br.com.enquete.bean.Enquete;
import br.com.enquete.dao.EnqueteDAO;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.RowEditEvent;

/**
 *
 * @author cf03612
 */
@ManagedBean(name = "enqueteBean")
@RequestScoped
public class EnqueteBean {

    private EnqueteDAO enqueteDAO = new EnqueteDAO();
    private Enquete selecaoEnquete = new Enquete();
    private List<Enquete> enquetes;   

    public EnqueteBean() {
    }

    public void novaEnquete() throws ClassNotFoundException, SQLException {
        enqueteDAO.novo(selecaoEnquete);
        //para limpar o cached
        enquetes = null;        
    }

    public void alterarEnquete() throws ClassNotFoundException, SQLException {
        enqueteDAO.alterar(selecaoEnquete);
        //para limpar o cached
        enquetes = null;
    }

    public void excluirEnquete() throws ClassNotFoundException, SQLException {
        enqueteDAO.excluir(selecaoEnquete);
        //para limpar o cached
        enquetes = null;
    }

    public List<Enquete> getListaEnquetes() throws ClassNotFoundException, SQLException {
        if (enquetes == null) {
            enquetes = enqueteDAO.getAllEnquetes();
        }
        return enquetes;
    }
    
    public Enquete getSelecaoEnquete() {
        return selecaoEnquete;
    }

    public void setSelecaoEnquete(Enquete selecaoEnquete) {
        this.selecaoEnquete = selecaoEnquete;
    }

}

Bom dia
Tenta mudar o escopo do ManagedBean de @RequestScoped para @ViewScoped ou SessionScoped.

Edson,
Tentei mais nao deu certo.
Percebi que ao retirar do template a pagina sozinha funciona contudo dentro do template sempre da esse erro.

Pessoal, queria aproveitar este post e pedir ajudar a vocês com o meu código abaixo. Estou tendo dificuldades quanto ao número de forms utilizados. Enfim, uma hora um form funciona, outra hora não … Agradeço a atenção.

<ui:composition template="index.xhtml" 
                xmlns ="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui">

    <ui:define name="top">
        <h3>Chamadas</h3>
    </ui:define>
    <ui:define name="conteudo">
        <h:form id="form_status">
            <p:menubar>
                <p:submenu label="Listar Chamadas">
                    <p:menuitem value="Pendentes" actionListener="#{problemaController.listarChamadasPendentes()}" update=":formGeral:tabelaChamadas"/>
                    <p:menuitem value="Em Andamento" actionListener="#{problemaController.listarChamadasAndamento()}" update=":formGeral:tabelaChamadas"/>
                    <p:menuitem value="Resolvidos" actionListener="#{problemaController.listarChamadasResolvidos()}" update=":formGeral:tabelaChamadas"/>
                    <p:menuitem value="Finalizados" actionListener="#{problemaController.listarChamadasFinalizados()}" update=":formGeral:tabelaChamadas"/>
                </p:submenu>
            </p:menubar>
        </h:form> <br/>

        <h:form id="formGeral">

            <p:dataTable id="tabelaChamadas" value="#{problemaController.chamadas}" style="width: 600px;" var="chamadasTable">
                <p:column>
                    <f:facet name="header"><h:outputText value="Título"/></f:facet>
                    #{chamadasTable.problema.titulo}
                </p:column>
                <p:column>
                    <f:facet name="header"><h:outputText value="Status"/></f:facet>
                    #{chamadasTable.estado}
                </p:column>
                <p:column>
                    <f:facet name="header"><h:outputText value="Atualizar Status"/></f:facet>
                      <h:form id="form_status">                    
                          <p:growl id="msg" showDetail="true" showSummary="true"></p:growl>

                          <h:selectOneMenu value="#{problemaController.aux}">
                              <f:selectItem itemLabel="Alterar Status" itemValue=""/>
                              <f:selectItem itemLabel="Em Andamento" itemValue="Andamento"/>
                              <f:selectItem itemLabel="Resolvido" itemValue="Resolvido"/>
                              <f:selectItem itemLabel="Finalizado" itemValue="Finalizado"/>
                          </h:selectOneMenu>
                          <p:commandButton process="form_status" id="alterar" value="Alterar" update="msg :formGeral:tabelaChamadas" action="#{problemaController.alterarStatus()}" oncomplete="popup.hide()"/>
                      </h:form>
                </p:column>
                <p:column>
                    <f:facet name="header"><h:outputText value="Mensagens"/></f:facet>
                    <p:commandButton value="Visualizar" update=":formGeral:painel" oncomplete="popup.show()">
                        <f:setPropertyActionListener value="#{chamadasTable}" target="#{problemaController.chamadaSuporte}"/>
                    </p:commandButton>
                </p:column>  
            </p:dataTable>

            <!-- Abre Dialog com Mensagens. -->
            <p:dialog id="dialog" widgetVar="popup" header="Acompanhamento" width="500" resizable="false" appendToBody="true">

                <p:scrollPanel id="painel" style="height: 300px; text-align: left">
                    <p:dataList id="dtList" value="#{problemaController.chamadaSuporte.mensagens}" rendered="#{not empty problemaController.chamadaSuporte.mensagens}" var="chamadas" itemType="square">
                        <h:outputText value="#{chamadas.remetente}:  #{chamadas.texto}"/>
                    </p:dataList>
                </p:scrollPanel>   
                <p:separator/>                
            </p:dialog>
        </h:form>
    </ui:define>
</ui:composition> 

:oops: :oops: :oops: :oops: :oops:

Alguma sugestão ???

Cara o problema de usar vários form é esse que vc está encontrando, mais se vc analizar seu codigo perceba que o id=“form_status” esta duplicado, e pode esta havendo algum conflito. Mas fica a dica, organize muito bem seus form e economize sua utilização, pois já tive dor de cabeça com eles, geralmente “form” dentro de “form” costumam a anular algumas funcionalidades.

prog.tiago,

estou passando por um problema parecido com o seu. no meu caso, a diferenca é que o meu botao está fora da datatable e, consequentemente, tambem nao uso setPropertyActionListener . alguem sabe se tem que fazer algo a mais para funcionar?