Erro em página Primefaces

Por favor, já fiz um post com pedido de ajuda que não surtiu efeito, então criei outro.
Estou trabalhando com Java8, banco Oracle e Primefaces
Tenho uma página index.xhtml que usa “ui:composition”. É basicamente uma tela de consulta onde passo alguns parametros para pesquisar.
Ao clicar no botão pesquisar ela mostra uma grid abaixo na mesma página com o resultado.
Nesta grid, cada resultado tem dois botões: Mostrar e Alterar.
Quando eu clico no botão Mostrar é chamada a página “view.xhtml” que mostra todos os campos do
registro escolhido.
De acordo com o status desse registro aparecem alguns botões “commandButton” na tela.
nunca aparecem todos.
Por exemplo:
O registro precisa ser aprovado ou reprovado, então aparecem só dois botões, “aprovar” e “reprovar”.
Se já foi aprovado só pode ser inativado, então aparece só um botão, “inativar” e por aí vai.
Minha manutenção é colocar mais um “commandButton” nesta tela view.xhtml por causa de um novo status.

Os botões estão dentro de um “f:facet” com nome “footer”

<f:facet name="footer">
	<p:outputPanel id="pnVisualizarBotoes" layout="block" style="text-align: center">
		<p:commandButton id="btAprovarCartao" rendered="#{cartaoEstacionamentoMB.isBotaoAprovarCartaoVisivel()}"
		    value="#{m['cartao.estacionamento.visualizar.bt.aprovar']}"
			styleClass="botao" process="@this" partialSubmit="true"
			action="#{cartaoEstacionamentoMB.doAprovarCartao()}" 
			update=":msgs :form:pnQueryResult pnVizDadosCartao pnVisualizarBotoes"
			oncomplete="onCompleteAprovarCartao(xhr, status, args)" />

.... vários outros commandButtons que aparecem de acordo com status do registro escolhido.

O erro acontece justamente quando tendo acrescentar este commandButton na view.xhtml.

Endereço de onde está a página →
Error Rendering view[/pages/prefeitura/cartao/estacionamento/index.xhtml]

E o erro que aparece no meu console do Eclipse:

javax.faces.FacesException: Cannot find component with identifier “:acoesForm:dgVisualizar” referenced
from “form:tbResultadoPesquisa:0:btVisualizar”.
Cannot find component with identifier “:acoesForm:dgVisualizar” referenced from “form:tbResultadoPesquisa:0:btVisualizar”.

Explicando os nomes:
dgVisualizar: é o nome do “p:dialog” na página view.xhtml
acoesForm: é uma palavra que não sei direito o que é.
fica no update do commanButton que chama o view.xhtml:
update=“:acoesForm:dgVisualizar, :msgs”

o commandButton que chama o view.xhtml na página index.xhtml é assim:

<p:commandButton id="btVisualizar" icon="ui-icon-arrowthick-1-e"
		title="#{m['cartao.estacionamento.consultar.registros.bt.visualizar']}"
		partialsubmit="true" process="@this"
		action="#{cartaoEstacionamentoMB.doPrepareVisualizacao(dados.idCartao)}"
		update=":acoesForm:dgVisualizar, :msgs"
		oncomplete="onCompletePrepareVisualizacao(xhr, status, args);">
	 </p:commandButton>

tbResultadoPesquisa: é o nome do “p:dataTable” que está o botão acima
btVisualizar: é o nome do botão acima.

O zero “0” em “form:tbResultadoPesquisa:0:btVisualizar” eu não entendo o que é.

O curioso e que eu altero a pagina view.xhtml e o erro acontece quando eu clico no botão de consulta
da página index.xhtml. Nem aparece a grid “p:dataTable” com o resultado da pesquisa.
Eu ainda nem chamei a página view.xhtml.

Por favor alguém consegue me ajudar?

Com certeza preciso explicar melhor a situação.
Posso mostrar com mais detalhes o código.

O erro que a aplicação faz aparecer na tela do sistema:

Pode postar o código do dialog pra gente ver? Suspeito que, ao clicar no botão, o componente nem esteja na tela ainda para ser apresentado, por isso ele não encontra a referência.

Provavelmente é algum elemento que está sendo renderizado através de algum loop, por isso tem o 0 (zero) que é o índice do elemento na lista, ou seja, outros elementos irão seguir a sequência numérica.

Posso sim, mas é enorme:



<ui:composition 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:pe="http://primefaces.org/ui/extensions"
		xmlns:p="http://primefaces.org/ui"
		xmlns:c="http://java.sun.com/jsp/jstl/core"
		xmlns:pd="http://java.sun.com/jsf/composite/prodesp">

	<h:outputStylesheet>
		.cssCol1{
			width: 150px;
		}
		.cssCol2{
			width: 320px;
		}
		.cssCol3{
			width: 140px;
		}
	</h:outputStylesheet>
	
	<script type="text/javascript">
		function onCompleteAprovarCartao(xhr, status, args) {
			if (!args.validationFailed) {
				dgConfirmarImpressao.show();		
			}
		}
		
		function onCompletePrepareReprovarCartao(xhr, status, args) {
			if (!args.validationFailed) {
				dgConfirmarReprovacao.show();
			}
		}
		
		function onCompletePrepareBloquearCartao(xhr, status, args) {
			if (!args.validationFailed) {
				dgConfirmarBloqueio.show();
			}
		}
		
		function onCompletePrepareDesbloquearCartao(xhr, status, args) {
			if (!args.validationFailed) {
				dgConfirmarDesbloqueio.show();
			}
		}
		
		function onCompleteImprimirCartao(xhr, status, args) {
			if (!args.validationFailed) {
				window.open(
						'#{u.context}' + args.urlCartao,
						'_blank',
						'width=600,height=300,,resizable=yes,location=0,menubar=0,status=0,titlebar=0,toolbar=0');
			}
		}
	</script>
	
	<ui:param name="dadosSolicitacaoVO" value="#{solCursoPrevReciclagemMB.detalhesSolCursoReciclagemVO}"/>
	<p:dialog header="#{m['cartao.estacionamento.visualizar.janela.titulo']}" style="background-color:#fff;"
			widgetVar="dgVisualizar" resizable="true" id="dgVisualizar" minWidth="890" 
			showEffect="fade" hideEffect="explode" modal="true" height="580" width="890">

		<p:outputPanel id="pnVizDadosCartao">
			<ui:param name="dadosCartaoVO" value="#{cartaoEstacionamentoMB.detalhesCartaoVO}"/>
			<pd:subtitle value="#{m['cartao.estacionamento.comum.dados.cartao.titulo']}" style="margin-top: 14px; display: block"/>
			<h:panelGrid columns="2" cellpadding="2" cellspacing="2"  border="0" columnClasses="coluna1 cssCol1, coluna2"
				style="background-color:#fff; width: 98%" id="pnVizInformacaoCartao">

				<h:outputText value="#{m['cartao.estacionamento.comum.dados.cartao.sub.tipo']}:" />
				<h:outputText value="#{m[dadosCartaoVO.subTipoCartao.messageKey]}" styleClass="bold" />

				<h:outputText value="#{m['cartao.estacionamento.comum.dados.cartao.registro']}:" />
				<h:outputText value="#{dadosCartaoVO.numeroRegistroFormatado}" styleClass="bold"/>
				
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.cartao.solicitacao']}:" />
				<h:outputText value="#{dadosCartaoVO.dataSolicitacao}" styleClass="bold">
					<f:convertDateTime pattern="dd/MM/yyyy" locale="pt_BR" />
				</h:outputText>

				<h:outputText value="#{m['cartao.estacionamento.visualizar.dados.cartao.aprovacao']}:" />
				<h:outputText value="#{dadosCartaoVO.dataAprovacao}" styleClass="bold">
					<f:convertDateTime pattern="dd/MM/yyyy" locale="pt_BR" />
				</h:outputText>

				<h:outputText value="#{m['cartao.estacionamento.visualizar.dados.cartao.vencimento']}:" />
				<h:outputText value="#{dadosCartaoVO.dataVencimento}" styleClass="bold">
					<f:convertDateTime pattern="dd/MM/yyyy" locale="pt_BR" />
				</h:outputText>

				<h:outputText value="#{m['cartao.estacionamento.comum.dados.cartao.status']}:" />
				<h:outputText value="#{m[dadosCartaoVO.statusCartao.messageKey]}" styleClass="bold" />

				<h:outputText value="#{m['cartao.estacionamento.visualizar.dados.cartao.motivo.bloqueio']}:" rendered="#{dadosCartaoVO.statusCartao eq 'BLOQUEADO'}" />
				<h:outputText value="#{dadosCartaoVO.motivoStatus}" styleClass="bold" rendered="#{dadosCartaoVO.statusCartao eq 'BLOQUEADO'}" style="word-break: break-word;" />
				
				<h:outputText value="#{m['cartao.estacionamento.visualizar.dados.cartao.motivo.reprovacao']}:" rendered="#{dadosCartaoVO.statusCartao eq 'REPROVADO'}" />
				<h:outputText value="#{dadosCartaoVO.motivoStatus}" styleClass="bold" rendered="#{c.statusCartao eq 'REPROVADO'}" style="word-break: break-word;" />

				<h:outputText value="#{m['cartao.estacionamento.comum.dados.cartao.validade']}:" rendered="#{dadosCartaoVO.subTipoCartao eq 'CARTAO_DEFICIENTE'}" />
				<h:outputText value="#{dadosCartaoVO.qtdeMesesValidade} #{dadosCartaoVO.qtdeMesesValidade eq 1 ? 'mês' : 'meses'}" styleClass="bold" 
				 	rendered="#{dadosCartaoVO.subTipoCartao eq 'CARTAO_DEFICIENTE'}"/>
			</h:panelGrid>
			
			<pd:subtitle value="#{m['cartao.estacionamento.comum.dados.proprietario.titulo']}" style="margin-top: 14px; display: block"/>
			<h:panelGrid columns="2" cellpadding="2" cellspacing="2" 
				border="0" columnClasses="coluna1 cssCol1, coluna2" style="width: 98%" >
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.nome']}:" />
				<h:outputText value="#{dadosCartaoVO.nome}" styleClass="bold" />
			</h:panelGrid>
			<h:panelGrid columns="4" cellpadding="2" cellspacing="2"  
				border="0" columnClasses="coluna1 cssCol1, coluna2 cssCol2, coluna3 cssCol3, coluna4" style="width: 98%">
			
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.cpf']}:" />
				<h:outputText value="#{dadosCartaoVO.cpf}" styleClass="bold" converter="cpfConverter"  />

				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.nascimento']}:" />
				<h:outputText value="#{dadosCartaoVO.dataNascimento}" styleClass="bold">
					<f:convertDateTime pattern="dd/MM/yyyy" />
				</h:outputText>
			</h:panelGrid>
			
			<h:panelGrid columns="2" cellpadding="2" cellspacing="2" 
				border="0" columnClasses="coluna1 cssCol1, coluna2" style="width: 98%" >
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.cep']}:" />
				<h:outputText value="#{dadosCartaoVO.cep}" styleClass="bold" converter="cepConverter" />
			</h:panelGrid>
			
			<h:panelGrid columns="4" cellpadding="2" cellspacing="2"  
				border="0" columnClasses="coluna1 cssCol1, coluna2 cssCol2, coluna3 cssCol3, coluna4" style="width: 98%">
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.logradouro']}:" />
				<h:outputText value="#{dadosCartaoVO.logradouro}" styleClass="bold" />
				
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.numero']}:" />
				<h:outputText value="#{dadosCartaoVO.numeroLogradouro}" styleClass="bold" />

				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.complemento']}:" />
				<h:outputText value="#{dadosCartaoVO.complementoLogradouro}" styleClass="bold" />
				
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.bairro']}:" />
				<h:outputText value="#{dadosCartaoVO.nomeBairro}" styleClass="bold" />
					
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.uf']}:" />
				<h:outputText value="#{dadosCartaoVO.uf}" styleClass="bold" />
				
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.municipio']}:" />
				<h:outputText value="#{dadosCartaoVO.nomeMunicipio}" styleClass="bold" />
	
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.telefone']}:" />
				<h:outputText value="#{dadosCartaoVO.telefone}" styleClass="bold" />
				
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.cxpostal']}:" />
				<h:outputText value="#{dadosCartaoVO.caixaPostal}" styleClass="bold" />
					
				<h:outputText value="#{m['cartao.estacionamento.comum.dados.proprietario.email']}:" />
				<h:outputText value="#{dadosCartaoVO.email}" styleClass="bold" />
			</h:panelGrid>				
		</p:outputPanel>
		
		<h:panelGrid columns="2" columnClasses="coluna1 cssCol1, coluna2" 
			width="98%" border="0" cellpadding="0" cellspacing="0" style="margin-top:5px">
			<h:outputText value="#{m['cartao.estacionamento.comum.dados.cartao.anexos']}:" />
			<p:dataTable id="tbVizUploadAnexos" style="width: 100%;" 
				rowIndexVar="indice" value="#{dadosCartaoVO.anexos}" var="anexoVO"
				paginator="true" rows="3" emptyMessage="#{m['cartao.estacionamento.comum.dados.cartao.anexos.nenhum.registro']}">
				<p:column>
					<f:facet name="header">#{m['cartao.estacionamento.comum.dados.cartao.anexos']}</f:facet>
						<h:outputText value="#{anexoVO.nomeArquivo}">
					</h:outputText>
				</p:column>
				<p:column style="width: 10px;">
					<p:commandButton id="btBaixarAnexo" icon="fa fa-download"
						process="@this" update=":msgs" ajax="false" immediate="true">
						<p:fileDownload value="#{cartaoEstacionamentoMB.getArquivoAnexo(anexoVO)}" />
					</p:commandButton>
				</p:column>
			</p:dataTable>
		</h:panelGrid>
		<br/>
	
		<f:facet name="footer">
			<p:outputPanel id="pnVisualizarBotoes" layout="block" style="text-align: center">
				<p:commandButton id="btAprovarCartao" rendered="#{cartaoEstacionamentoMB.isBotaoAprovarCartaoVisivel()}"
					value="#{m['cartao.estacionamento.visualizar.bt.aprovar']}"
					styleClass="botao" process="@this" partialSubmit="true"
					action="#{cartaoEstacionamentoMB.doAprovarCartao()}" update=":msgs :form:pnQueryResult pnVizDadosCartao pnVisualizarBotoes"
					oncomplete="onCompleteAprovarCartao(xhr, status, args)" />
			
				<p:commandButton id="btReprovarCartao" rendered="#{cartaoEstacionamentoMB.isBotaoReprovarCartaoVisivel()}"
					value="#{m['cartao.estacionamento.visualizar.bt.reprovar']}"
					styleClass="botao" process="@this" partialSubmit="true"
					action="#{cartaoEstacionamentoMB.doPrepareReprovarCartao()}" update=":msgs :acoesForm:dgConfirmarReprovacao"
					oncomplete="onCompletePrepareReprovarCartao(xhr, status, args)" />

				<p:commandButton id="btBloquearCartao" rendered="#{cartaoEstacionamentoMB.isBotaoBloquearCartaoVisivel()}"
					value="#{m['cartao.estacionamento.visualizar.bt.bloquear']}"
					styleClass="botao" process="@this" partialSubmit="true"
					action="#{cartaoEstacionamentoMB.doPrepareBloquearCartao()}" update=":msgs :acoesForm:dgConfirmarBloqueio"
					oncomplete="onCompletePrepareBloquearCartao(xhr, status, args)" />

				<p:commandButton id="btDesbloquearCartao" rendered="#{cartaoEstacionamentoMB.isBotaoDesbloquearCartaoVisivel()}"
					value="#{m['cartao.estacionamento.visualizar.bt.desbloquear']}"
					styleClass="botao" process="@this" partialSubmit="true"
					action="#{cartaoEstacionamentoMB.doPrepareDesbloquearCartao()}" update=":msgs :form:pnQueryResult pnVizDadosCartao pnVisualizarBotoes"
					oncomplete="onCompletePrepareDesbloquearCartao(xhr, status, args)" />

				<p:commandButton id="btEmitirNovaViaCartao" rendered="#{cartaoEstacionamentoMB.isBotaoEmitirNovaViaCartaoVisivel()}"
					value="#{m['cartao.estacionamento.visualizar.bt.via2']}"
					styleClass="botao" process="@this" partialSubmit="true"
					update=":msgs" oncomplete="dgConfirmarNovaEmissao.show();" />

				<p:commandButton id="btImprimirCartao" rendered="#{cartaoEstacionamentoMB.isBotaoImprimirVisivel()}"
					value="#{m['cartao.estacionamento.visualizar.bt.imprimir']}"
					styleClass="botao" process="@this" partialSubmit="true"
					action="#{cartaoEstacionamentoMB.doImprimirCartao()}" update=":msgs pnVizInformacaoCartao"
					oncomplete="onCompleteImprimirCartao(xhr, status, args)" />
					
				<p:commandButton value="#{m['cartao.estacionamento.visualizar.bt.fechar']}" icon="ui-icon-close-white"
					styleClass="botao" onclick="dgVisualizar.hide();" process="@none"
					type="button" />
			</p:outputPanel>
		</f:facet>
	</p:dialog>
</ui:composition>

Provavelmente é algum elemento que está sendo renderizado através de algum loop, por isso tem o 0 (zero) que é o índice do elemento na lista, ou seja, outros elementos irão seguir a sequência numérica.

Você pode ter razão, pois eu já ví no console algo parecido:

tbResultadoPesquisa:0:btVisualizar
tbResultadoPesquisa:1:btVisualizar
tbResultadoPesquisa:2:btVisualizar
tbResultadoPesquisa:3:btVisualizar
tbResultadoPesquisa:4:btVisualizar

Bom dia.

Por favor, alguém mais se habilita a me ajudar?