reRender não funciona!

Por que o reRender da linha 72 não renderiza o richpanel da linha 89? Ele renderiza só o outputtext da linha 107. Já coloquei o richpanel em um form, mas não funciona, e o bean da rich:tree chama o bean do richpanel, só não consegue renderiza-la.


<?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:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:a4j="http://richfaces.org/a4j"
	xmlns:rich="http://richfaces.org/rich"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:c="http://java.sun.com/jstl/core">
<head>
<link rel="stylesheet" href="../css/master.css" type="text/css" />
<style type="text/css">
</style>
</head>
<body>
<ui:composition template="/templates/geral.xhtml">
	<ui:define name="menu">
		<div id="menu" align="left" style="width: 100%;">
		<ul style="list-style: none; margin: 0; padding: 0;">
			<li>

			<h2
				style="color: #fff; background-color: #3b2e1e; font: bold 11px/ 16px arial, helvetica, sans-serif;">Administrador</h2>

			<ul style="list-style: none; margin: 0; padding: 0;">
				<li><a
					style="font: bold 11px/ 16px arial, helvetica, sans-serif">Consultar</a></li>
			</ul>

			</li>
		</ul>
		<ul style="list-style: none; margin: 0; padding: 0;">
			<li>

			<h2
				style="color: #fff; background-color: #3b2e1e; font: bold 11px/ 16px arial, helvetica, sans-serif;">Gerência
			de Páginas</h2>

			<ul style="list-style: none; margin: 0; padding: 0;">
				<li><a
					style="font: bold 11px/ 16px arial, helvetica, sans-serif">Criar
				Nova Página</a></li>
			</ul>

			</li>
		</ul>
		<ul style="list-style: none; margin: 0; padding: 0;">
			<li>

			<h2
				style="color: #fff; background-color: #3b2e1e; font: bold 11px/ 16px arial, helvetica, sans-serif;">Páginas
			Ativas</h2>

			<ul style="list-style: none; margin: 0; padding: 0;">
				<li><a
					style="font: bold 11px/ 16px arial, helvetica, sans-serif">Regiões</a></li>
			</ul>

			</li>
		</ul>

		<h:form>
			<h:panelGrid columns="2" width="100%" columnClasses="col1,col2">

				<rich:tree switchType="client" id="treeXMLReceita"
					value="#{controllerBean.arvoreReceita}" var="vardata">
					<rich:treeNode>
						<h:outputText value=" #{vardata.attributes['nome']}"
							style="font: bold 11px/16px arial, helvetica, sans-serif" />
						<a4j:support event="onselected"
							action="#{controllerBean.processSelection}"
							reRender="panel,selectedNode">
							<f:param name="iditem" value="#{vardata.attributes['id']}" />
						</a4j:support>
					</rich:treeNode>
				</rich:tree>

				<h:outputText escape="false"
					value="Selected Node: #{controllerBean.nodeTitle}"
					id="selectedNode" />

			</h:panelGrid>

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

	<ui:define name="body">

		<rich:panel id="panel" style="background-color: #EEE;">

			<a4j:repeat var="menu" value="#{municipioController.municipio.menus}">
				<h:outputText value="#{menu.titulo}" />
				<br />
				<a4j:repeat var="submenu" value="#{menu.submenus}">
					<li><h:commandLink
						action="#{municipioController.montarPagina}"
						value="#{submenu.titulo}">
						<f:param value="#{submenu.pagina}" name="titulo" />
					</h:commandLink> <h:commandLink action="#{municipioController.montarPagina}"
						value="x">
						<f:param value="#{submenu.pagina}" name="exc" />
					</h:commandLink></li>
					<br />
				</a4j:repeat>
			</a4j:repeat>

			<h:outputText value="#{municipioController.htmlOut}" escape="false"
				rendered="#{municipioController.renderizador1}" />

		</rich:panel>

	</ui:define>

</ui:composition>

</body>

</html>

Tente em vez de dar um reRender no panel colocar um a4j:outPutPanel ,daew axo que va funcionar o reRender.

Coloquei o a4j:outputpanel e não funcionou!

<body>
<ui:composition template="/templates/geral.xhtml">
	<ui:define name="menu">
		<div id="menu" align="left" style="width: 100%;">
		<ul style="list-style: none; margin: 0; padding: 0;">
			<li>

			<h2
				style="color: #fff; background-color: #3b2e1e; font: bold 11px/ 16px arial, helvetica, sans-serif;">Administrador</h2>

			<ul style="list-style: none; margin: 0; padding: 0;">
				<li><a
					style="font: bold 11px/ 16px arial, helvetica, sans-serif">Consultar</a></li>
			</ul>

			</li>
		</ul>
		<ul style="list-style: none; margin: 0; padding: 0;">
			<li>

			<h2
				style="color: #fff; background-color: #3b2e1e; font: bold 11px/ 16px arial, helvetica, sans-serif;">Gerência
			de Páginas</h2>

			<ul style="list-style: none; margin: 0; padding: 0;">
				<li><a
					style="font: bold 11px/ 16px arial, helvetica, sans-serif">Criar
				Nova Página</a></li>
			</ul>

			</li>
		</ul>
		<ul style="list-style: none; margin: 0; padding: 0;">
			<li>

			<h2
				style="color: #fff; background-color: #3b2e1e; font: bold 11px/ 16px arial, helvetica, sans-serif;">Páginas
			Ativas</h2>

			<ul style="list-style: none; margin: 0; padding: 0;">
				<li><a
					style="font: bold 11px/ 16px arial, helvetica, sans-serif">Regiões</a></li>
			</ul>

			</li>
		</ul>

		<h:form>
			<h:panelGrid columns="2" width="100%" columnClasses="col1,col2">

				<rich:tree switchType="client" id="treeXMLReceita"
					value="#{controllerBean.arvoreReceita}" var="vardata">
					<rich:treeNode>
						<h:outputText value=" #{vardata.attributes['nome']}"
							style="font: bold 11px/16px arial, helvetica, sans-serif" />
						<a4j:support event="onselected"
							action="#{controllerBean.processSelection}"
							reRender="panel,selectedNode">
							<f:param name="iditem" value="#{vardata.attributes['id']}" />
						</a4j:support>
					</rich:treeNode>
				</rich:tree>

				<h:outputText escape="false"
					value="Selected Node: #{controllerBean.nodeTitle}"
					id="selectedNode" />

			</h:panelGrid>

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

	<ui:define name="body">

		<a4j:outputPanel ajaxRendered="true" id="panel">

			<a4j:repeat var="menu" value="#{municipioController.municipio.menus}">
				<h:outputText value="#{menu.titulo}" />
				<br />
				<a4j:repeat var="submenu" value="#{menu.submenus}">
					<li><h:commandLink
						action="#{municipioController.montarPagina}"
						value="#{submenu.titulo}">
						<f:param value="#{submenu.pagina}" name="titulo" />
					</h:commandLink> <h:commandLink action="#{municipioController.montarPagina}"
						value="x">
						<f:param value="#{submenu.pagina}" name="exc" />
					</h:commandLink></li>
					<br />
				</a4j:repeat>
			</a4j:repeat>

			<h:outputText value="#{municipioController.htmlOut}" escape="false"
				rendered="#{municipioController.renderizador1}" />

		</a4j:outputPanel>

	</ui:define>

</ui:composition>

</body>

To testando aqui o código, os outputs das linhas 16 e 46 estão renderizando, mas o a4j:repeat não!!! Por favor me ajudem!!



		<a4j:form >

			<rich:tree switchType="client" id="treeXMLReceita"
				value="#{municipioController.arvoreReceita}" var="vardata">
				<rich:treeNode>
					<h:outputText value=" #{vardata.attributes['nome']}"
						style="font: bold 11px/16px arial, helvetica, sans-serif" />
					<a4j:support event="onselected"
						action="#{municipioController.processSelection}"
						reRender="selectedNode1,selectedNode,selectedNode3">
						<f:param name="iditem" value="#{vardata.attributes['id']}" />
					</a4j:support>
				</rich:treeNode>
			</rich:tree>

			<h:outputText escape="false"
				value="Selected Node: #{municipioController.nodeTitle}" id="selectedNode" />

		</a4j:form>


	</ui:define>

	<ui:define name="body">
		
		<rich:panel>
			
			<a4j:repeat var="menu" value="#{municipioController.municipio.menus}"
				 id="selectedNode1">
				<h:outputText value="#{menu.titulo}" />
				<br />
				<a4j:repeat var="submenu" value="#{menu.submenus}">
					<li><h:commandLink
						action="#{municipioController.montarPagina}"
						value="#{submenu.titulo}">
						<f:param value="#{submenu.pagina}" name="titulo" />
					</h:commandLink> <h:commandLink action="#{municipioController.montarPagina}"
						value="x">
						<f:param value="#{submenu.pagina}" name="exc" />
					</h:commandLink></li>
					<br />
				</a4j:repeat>
			</a4j:repeat>


			<h:outputText escape="false"
				value="Selected Node: #{municipioController.nodeTitle}" id="selectedNode3" />

			<h:outputText value="#{municipioController.htmlOut}" escape="false"
				rendered="#{municipioController.renderizador1}" />
				
		</rich:panel>
		
	</ui:define>

nao sei se isso vai te ajudar… quando eu quero esconder e mostrar componentes eu costumo associar eles a uma propriedade boleana no bean e coloco do atributo rendered="#{bean.propriedadeEsconteMostra}" quando for para mostrar o metodo do bean muda a propriedade e apos o reRender ele aparece ou esconde. no seu caso pode ser isso.

como nao tem nada para definir a renderizacao dele ele sempre vai ser o mesmo.

detalhe: nao sei como esta seu codigo do bean.
mais uma coisa se estiver testando no IE o reRender nao funciona mesmo em alguns casos. entao na solicitacao da linha 72 coloque ajaxSingle=“true” e veja se resolve seu problema. alem de testar em outros navegadores. sujiro chrome e safari.

Carla,

Creio que o seu problema se deve ao fato do a4j:repeat nao ser atualizado completamente em uma requisição ajax, e sim em “partes”. Ou seja, por linhas. Voce deve especificar quais linhas serão atualizadas, através do atributo ajaxKeys

Dê uma olhada na documentação do RichFaces que explica sobre isso, e tambem no demo que existe no site do RichFaces, que utiliza esse recurso.

#   &lt;h:form&gt;  
#             &lt;h:panelGrid columns="2" width="100%" columnClasses="col1,col2"&gt;  
#   
#                 &lt;rich:tree switchType="client" id="treeXMLReceita"  
#                     value="#{controllerBean.arvoreReceita}" var="vardata"&gt;  
#                     &lt;rich:treeNode&gt;  
#                         &lt;h:outputText value=" #{vardata.attributes['nome']}"  
#                             style="font: bold 11px/16px arial, helvetica, sans-serif" /&gt;  
#                         &lt;a4j:support event="onselected"  
#                             action="#{controllerBean.processSelection}"  
#                             reRender="panel,selectedNode"&gt;  
#                             &lt;f:param name="iditem" value="#{vardata.attributes['id']}" /&gt;  
#                         &lt;/a4j:support&gt;  
#                     &lt;/rich:treeNode&gt;  
#                 &lt;/rich:tree&gt;  
#   
#                 &lt;h:outputText escape="false"  
#                     value="Selected Node: #{controllerBean.nodeTitle}"  
#                     id="selectedNode" /&gt;  
#   
#             &lt;/h:panelGrid&gt;  
#   
#         &lt;/h:form&gt;&lt;/div&gt;  

Procure tbm usar o a4j:form no lugar de h:form :wink:

carllacj sei que o tópico é muuuito antigo hehe
mas to com essa dor de cabeça também…
você lembra se como você solucionou esse problema…
ou será que alguem que ser esse tópico tem alguma idéia :s

Mesmo problema também