Boa noite, estou montando outro projeto para aplicar as questões do curso, mas me deparei com a situação abaixo, que inclusive encontra-se igual ao curso, e não estou conseguindo resolver. Estou utilizando a lib primefaces 6.0. Erro: org.primefaces.expression.ComponentNotFoundException: Cannot find component for expression ":frmTabelaLogradouro:tabelaLogradouros" referenced from "j_idt17:frmLogradouro:j_idt41".
O update abaixo esta correto, e o nome do frm e datatable também: update="@form :frmTabelaLogradouro:tabelaLogradouros" Se eu retirar, a pagina abre.
Tela
<?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://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:form id="frmLogradouro">
<p:messages id="messages"/>
<p:panelGrid columns="2">
<p:outputLabel value="Endereço:" for="endereco"/>
<p:inputText value="#{empresaBean.logradouro.endereco}" id="endereco" size="100" required="true" requiredMessage="Informe o endereço" validatorMessage="Endereço não pode ultrapassar 100 caracteres">
<f:validateLength maximum="60"/>
<f:ajax event="blur" render="messages"/>
</p:inputText>
<p:outputLabel value="Nº" for="numero"/>
<p:inputText value="#{empresaBean.logradouro.numero}" id="numero" required="true" requiredMessage="Informe o número"/>
<p:outputLabel value="Bairro" for="bairro"/>
<p:inputText value="#{empresaBean.logradouro.bairro}" id="bairro" required="true" requiredMessage="Informe o bairro"/>
<p:outputLabel value="Complemento" for="complemento"/>
<p:inputText value="#{empresaBean.logradouro.complemento}" id="complemento"/>
<p:outputLabel value="Estado" for="estado"/>
<p:selectOneMenu id="estado" value="#{geralBean.uf}">
<f:selectItem itemLabel="Selecione um estado" />
<f:selectItems value="#{geralBean.estados}" var="listaEstados" itemValue="#{listaEstados}" itemLabel="#{listaEstados.descricao}" />
<p:ajax update="municipios" event="change" listener="#{geralBean.filtraEstado}" />
</p:selectOneMenu>
<p:outputLabel value="Municipio" for="municipios"/>
<p:selectOneMenu id="municipios" value="#{geralBean.municipio}">
<f:selectItem itemLabel="Selecione um municipio" />
<f:selectItems value="#{geralBean.municipios}" var="listaMun" itemValue="#{listaMun}" itemLabel="#{listaMun.descricao}" />
</p:selectOneMenu>
<p:commandButton value="Gravar" action="#{empresaBean.adicionarLogradouro(geralBean.municipio)}" process="@form" update="@form :frmTabelaLogradouro:tabelaLogradouros"/>
</p:panelGrid>
<br/>
</h:form>
<h:form id="frmTabelaLogradouro">
<p:dataTable value="#{empresaBean.pessoa.listaLogradouros}" var="logradouro" emptyMessage="Nenhum endereço" id="tabelaLogradouros">
<p:column headerText="Endereço" filterBy="#{logradouro.endereco}" filterMatchMode="startsWith" sortBy="#{logradouro.endereco}">
<p:outputLabel value="#{logradouro.endereco}"/>
</p:column>
<p:column headerText="Número">
<p:outputLabel value="#{logradouro.numero}"/>
</p:column>
<p:column headerText="Bairro" filterBy="#{logradouro.bairro}" filterMatchMode="startsWith">
<p:outputLabel value="#{logradouro.bairro}"/>
</p:column>
<p:column headerText="Municipio" filterBy="#{logradouro.municipio.descricao}" filterMatchMode="startsWith">
<p:outputLabel value="#{logradouro.municipio.descricao}"/>
</p:column>
<p:column headerText="Remover">
<p:commandLink value="Remover" action="#{empresaBean.removerLogradouro(logradouro)}"/>
</p:column>
</p:dataTable>
</h:form>
</html>