Erro com a tag <p:tree>

1 resposta
R

Estou desenvolvendo uma página com primefaces e estou com dúvida a seguinte página quando eu compilo com o primefaces 3.0 da o seguinte erro

categoria.xhtml

<!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: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:composition template="/template/composicao.xhtml">

	<ui:define name="content">
		<f:view contentType="text/html">
			<h:panelGrid columns="2" cellpadding="5">
				<h:panelGroup>
					<h:form>
						<p:commandButton value="Novo" action="#{categoriaBean.novo}"
							></p:commandButton>
					</h:form>
					<br />
					<h:form id="arvore">
						<p:tree value="#{categoriaBean.categoriasTree}" var="node"
							selectionMode="single" selection="#{categoriaBean.selecionar}">
							<p:ajax event="select" update=":categoria:edicao"
								listener="#{categoriaBean.selecionar}" />
							<p:treeNode>
								<h:outputText value="#{node.descricao}" />
							</p:treeNode>
						</p:tree>
					</h:form>
				</h:panelGroup>
				<h:panelGroup id="edicao">
					<h:messages></h:messages>
					<h:form rendered="#{categoriaBean.mostraEdicao}">
						<h:inputHidden value="#{categoriaBean.editada.codigo}"></h:inputHidden>
						<h:inputHidden value="#{categoriaBean.editada.fator}"></h:inputHidden>
						<h:panelGrid columns="2">
							<h:outputLabel value="Pai"></h:outputLabel>
							<h:selectOneMenu value="#{categoriaBean.editada.pai}">
								<f:selectItems value="#{categoriaBean.categoriasSelect}"></f:selectItems>
							</h:selectOneMenu>
							<h:outputLabel value="Descricao"></h:outputLabel>
							<h:inputText value="#{categoriaBean.editada.descricao}"></h:inputText>
							<h:outputText></h:outputText>
							<h:panelGroup>
								<p:commandButton value="Salvar" action="#{categoriaBean.salvar}"
									update="edicao, arvore"></p:commandButton>
								<p:commandButton value="Excluir"
									action="#{categoriaBean.excluir}" update="edicao, arvore"></p:commandButton>
							</h:panelGroup>
							<h:outputText></h:outputText>
							<p:commandButton value="Nova subcategoria"
								action="#{categoriaBean.novo}" update="edicao"></p:commandButton>
						</h:panelGrid>
					</h:form>
				</h:panelGroup>
			</h:panelGrid>
		</f:view>
	</ui:define>

</ui:composition>
</html>
Erro
Nov 06, 2012 8:03:00 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/restrito/categoria.xhtml]
javax.faces.FacesException: Cannot find component with identifier ":categoria:edicao" referenced from "arvore:j_idt32".
	at org.primefaces.util.ComponentUtils.findClientIds(ComponentUtils.java:271)
	at org.primefaces.util.AjaxRequestBuilder.addIds(AjaxRequestBuilder.java:102)
	at org.primefaces.util.AjaxRequestBuilder.update(AjaxRequestBuilder.java:90)
	at org.primefaces.component.behavior.ajax.AjaxBehaviorRenderer.getScript(AjaxBehaviorRenderer.java:63)
	at javax.faces.component.behavior.ClientBehaviorBase.getScript(ClientBehaviorBase.java:103)
	at org.primefaces.renderkit.CoreRenderer.encodeClientBehaviors(CoreRenderer.java:289)
	at org.primefaces.component.tree.TreeRenderer.encodeScript(TreeRenderer.java:135)
	at org.primefaces.component.tree.TreeRenderer.encodeEnd(TreeRenderer.java:98)
	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:875)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
	at javax.faces.render.Renderer.encodeChildren(Renderer.java:168)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304)
	at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:304)
	at com.sun.faces.renderkit.html_basic.GridRenderer.renderRow(GridRenderer.java:185)
	at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:129)
	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:424)
	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at financeiro.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:30)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Já procurei a resposta neste forum mas a solução encontrada não funcionou. Desde já agradeço a ajuda de todos.

1 Resposta

Paulla
<h:form id="arvore">  
     <p:tree value="#{categoriaBean.categoriasTree}" var="node"  
           selectionMode="single" selection="#{categoriaBean.selecionar}">  
           <p:ajax event="select" [color=red]update=":categoria:edicao" [/color] 
                   listener="#{categoriaBean.selecionar}" />  
    <p:treeNode>  
             <h:outputText value="#{node.descricao}" />  
    </p:treeNode>  
    </p:tree>  
</h:form>

Creio que ele não está encontrando o componente com id=“categoria”

Criado 6 de novembro de 2012
Ultima resposta 22 de mai. de 2013
Respostas 1
Participantes 2