[RESOLVIDO] <a4j:support reRender=""> Não estão funcionando

debugando, ele não entra no método “setatrue” como falou o rafael.

alguem saberia me dizer o porquê ?

Repara que tu mandou renderizar um “painel_orgao_pai” e ele não existe!
No reRender tem que estar “painel_orgao_externo”.

aqui na minha maquina esse teu codigo ta funcionando…

debugou? tá entrando no setaTrue?

[quote=L.Bach]Repara que tu mandou renderizar um “painel_orgao_pai” e ele não existe!
No reRender tem que estar “painel_orgao_externo”.[/quote]

o painel orgao pai, está acima do orgao externo, por isso me indicaram reRender quem já foi renderizado na pagina, isso significa que, qndo eu entro nesta página, ele já traz o primeiro painel renderizado, o painel orgao pai. e o orgao externo, fica dentro do orgao pai. Veja:


	<h:panelGroup id="painel_orgao_pai">

  .................. .. .. .

                <h:panelGroup id="painel_orgao_externo" >

		</h:panelGroup>
</h:panelGroup>
				

[quote=raf4ever]aqui na minha maquina esse teu codigo ta funcionando…

debugou? tá entrando no setaTrue?[/quote]

eu debbuguei aqui, e realmente ele não entra no setaTrue.

[quote=L.Bach]Repara que tu mandou renderizar um “painel_orgao_pai” e ele não existe!
No reRender tem que estar “painel_orgao_externo”.[/quote]

Como assim não existe?

 <h:panelGroup id="painel_orgao_pai">  

[quote=EuclidesFilizola][quote=raf4ever]aqui na minha maquina esse teu codigo ta funcionando…

debugou? tá entrando no setaTrue?[/quote]

eu debbuguei aqui, e realmente ele não entra no setaTrue.[/quote]

esse código ta dentro de um h:form?

Está sim.


&lt;ui:composition template="/pages/layout.xhtml"&gt;
	&lt;ui:define name="conteudo"&gt;
		&lt;f:loadBundle basename="patrimonio.util.lb" var="lb" /&gt;
		&lt;h:form id="movimentacao_patrimonio"&gt;

coloca aqui o código completo dessa página.

Com F:ajax

<h:form prependId="false" id="form1">
			<h:panelGroup id="painel_orgao_pai">   
            <h:outputLabel value="Externo"/>   
            <h:selectBooleanCheckbox  id="id_externo" value="#{movimentacaoMBean.externo}" >
            	<f:ajax event="change" execute="@form" render="form1"/>
            </h:selectBooleanCheckbox>   
            <br/> 
               <h:panelGroup id="painel_orgao_externo" >   
                  <h:outputText value="Orgao externo" rendered="#{movimentacaoMBean.externo}"/>
            </h:panelGroup>   
        </h:panelGroup> 
	</h:form>

Fique atento aos seguintes pontos.
Tu não precisa de um listener setaTrue, a propria seleção do checkbox ira alternar o valor de externo tendo em vista que eles estao ligados.
Por causa disso é aconselhavel que tu reRenderize o checkbox também para evitar que eles fiquem fora de sincronia
Um evento onchange acho que iria manipular melhor esta ação do que um evento onclick.
E não esqueca de verificar como está o escopo do Mb


&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;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:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:t="http://myfaces.apache.org/tomahawk"&gt;

&lt;ui:composition template="/pages/layout.xhtml"&gt;
	&lt;ui:define name="conteudo"&gt;
		&lt;f:loadBundle basename="patrimonio.util.lb" var="lb" /&gt;
		&lt;h:form id="movimentacao_patrimonio"&gt;
		
		&lt;strong&gt; &lt;h:outputText value="Movimentar Patrimonio"/&gt;  &lt;/strong&gt;
		&lt;hr /&gt;
		&lt;h:panelGrid columns="2"&gt;
        		&lt;h:outputText value="Patrimonio"/&gt;
        		&lt;h:inputText value="#{movimentacaoMBean.patrimonio.notaFiscalBens.codBem.dsMaterial}" readonly="true"/&gt;
        		&lt;h:outputText value="Plaqueta"/&gt;
        		&lt;h:inputText value="#{movimentacaoMBean.patrimonio.plaqueta.cdPlaqueta}" readonly="true"/&gt;
        		&lt;h:outputText value="Setor Atual"/&gt;
        		&lt;h:inputText value="#{movimentacaoMBean.setorAtual}" readonly="true"/&gt;
        		&lt;h:outputText value="Setor para movimentacao"/&gt;
        		&lt;h:selectOneMenu value="#{movimentacaoMBean.setor.cdSetor}" id="codSetor"&gt;
					  &lt;f:selectItem itemLabel="" /&gt;
						&lt;f:selectItems value="#{movimentacaoMBean.listaDeTdsSetores}" /&gt;
					&lt;/h:selectOneMenu&gt;
					
				&lt;h:panelGroup id="painel_orgao_pai"&gt;
				&lt;h:outputLabel value="Externo"/&gt;
				&lt;h:selectBooleanCheckbox  id="id_externo" value="#{movimentacaoMBean.externo}" &gt;
				[b]&lt;a4j:support reRender="painel_orgao_pai" event="onclick"
				ajaxSingle="true" actionListener="#{movimentacaoMBean.setaTrue}" /&gt;[/b]
				&lt;/h:selectBooleanCheckbox&gt;
			    <br />
		
				  [b] &lt;h:panelGroup id="painel_orgao_externo" &gt;
				      &lt;h:outputLabel value="Orgao externo" id="lb_orgaoexterno" rendered="#{movimentacaoMBean.externo}"/&gt;
				        &lt;h:selectOneMenu value="#{movimentacaoMBean.orgaoExterno.cdOrgao}" id="codOrgao" rendered="#{movimentacaoMBean.externo}" &gt;
					      &lt;f:selectItem itemLabel="" /&gt;
						  &lt;f:selectItems value="#{movimentacaoMBean.listaDeOrgsExternos}" /&gt;
					  &lt;/h:selectOneMenu&gt;
				&lt;/h:panelGroup&gt;[/b]
			&lt;/h:panelGroup&gt;
				
				&lt;t:saveState value="#{movimentacaoMBean.patrimonio}"/&gt;
				&lt;h:commandButton action="#{movimentacaoMBean.movimentarPatrimonio}" value="Movimentar"/&gt;
        	&lt;/h:panelGrid&gt;

        		

		&lt;hr/&gt;
		&lt;/h:form&gt;
		
		&lt;h:form id="tabela_movimentacao_patrimonio"&gt;
		
		&lt;f:facet name="titulo"&gt;
            &lt;h:panelGroup&gt;
                &lt;h:outputText value="Movimentacoes Cadastradas"&gt;&lt;/h:outputText&gt;
            &lt;/h:panelGroup&gt;
        &lt;/f:facet&gt;
	&lt;rich:dataTable id="tabelaMovimentacaoPatrimonio" style="cursor:pointer;" value="#{movimentacaoMBean.listaMovimentacoesPorPatrimonio}" var="listMovimentacao" onRowMouseOver="this.style.backgroundColor='#C9FDC1'"
				onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'" cellpadding="0" cellspacing="0" rows="10" &gt;
				&lt;f:facet name="header" &gt;
				 &lt;rich:columnGroup&gt;
				 	&lt;h:column &gt; &lt;h:outputText value="Setor" /&gt; &lt;/h:column&gt;
				 	&lt;h:column &gt; &lt;h:outputText value="Bem" /&gt; &lt;/h:column&gt;
				 	&lt;h:column &gt; &lt;h:outputText value="Data de entrada" /&gt; &lt;/h:column&gt;
				 	&lt;h:column &gt; &lt;h:outputText value="Data de saida" /&gt; &lt;/h:column&gt;
				 	
				 &lt;/rich:columnGroup&gt;
				&lt;/f:facet&gt;
				
				&lt;h:column &gt; &lt;h:outputText value="#{listMovimentacao.setor.siglaSetor}"/&gt; &lt;/h:column&gt;
				&lt;h:column &gt; &lt;h:outputText value="#{listMovimentacao.patrimonio.notaFiscalBens.codBem.dsMaterial}"/&gt; &lt;/h:column&gt;
				&lt;h:column &gt; &lt;h:outputText value="#{listMovimentacao.dataEntrada}"/&gt; &lt;/h:column&gt;
				&lt;h:column &gt; &lt;h:outputText value="#{listMovimentacao.dataSaida}"/&gt; &lt;/h:column&gt;
				
				&lt;/rich:dataTable&gt;
		
		&lt;/h:form&gt;
		
&lt;/ui:define&gt;

	&lt;/ui:composition&gt;

&lt;/html&gt;

Bem,vamos diminuir as possibilidades de erro.

Deixa nessa página apenas o código que interessa por enquanto.

eu deixei dessa forma, e tbm n funcionou.


&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;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:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:t="http://myfaces.apache.org/tomahawk"&gt;

&lt;ui:composition template="/pages/layout.xhtml"&gt;
	&lt;ui:define name="conteudo"&gt;
		&lt;f:loadBundle basename="br.gov.ce.srh.patrimonio.util.lb" var="lb" /&gt;
		&lt;h:form id="movimentacao_patrimonio"&gt;
		
		
				&lt;h:panelGroup id="painel_orgao_pai"&gt;
				&lt;h:outputLabel value="Externo"/&gt;
				&lt;h:selectBooleanCheckbox  id="id_externo" value="#{movimentacaoMBean.externo}" &gt;
				&lt;a4j:support reRender="painel_orgao_pai" event="onclick"
				ajaxSingle="true" actionListener="#{movimentacaoMBean.setaTrue}" /&gt;
				&lt;/h:selectBooleanCheckbox&gt;
			    <br />
		
				   &lt;h:panelGroup id="painel_orgao_externo" &gt;
				      &lt;h:outputLabel value="Orgao externo" id="lb_orgaoexterno" rendered="#{movimentacaoMBean.externo}"/&gt;
				        &lt;h:selectOneMenu value="#{movimentacaoMBean.orgaoExterno.cdOrgao}" id="codOrgao" rendered="#{movimentacaoMBean.externo}" &gt;
					      &lt;f:selectItem itemLabel="" /&gt;
						  &lt;f:selectItems value="#{movimentacaoMBean.listaDeOrgsExternos}" /&gt;
					  &lt;/h:selectOneMenu&gt;
				&lt;/h:panelGroup&gt;
			&lt;/h:panelGroup&gt;
				
		
		
		&lt;/h:form&gt;
		
&lt;/ui:define&gt;

	&lt;/ui:composition&gt;

&lt;/html&gt;

Tire o setaTrue e mude o evento para onchange.

nada acontece.

:frowning:

:shock:

Modifica para <f:ajax> como eu postei anteriormente apenas para teste.

Aqui funciona perfeitamente.

ps: mude o formulario para <h:form id=“movimentacao_patrimonio” prependId=“false”>

Na verdade ao trabalhar com Ajax o melhor é usar o a4j:form

tentei desta forma:



&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;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:rich="http://richfaces.org/rich"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:t="http://myfaces.apache.org/tomahawk"&gt;

&lt;ui:composition template="/pages/layout.xhtml"&gt;
	&lt;ui:define name="conteudo"&gt;
		&lt;f:loadBundle basename="br.gov.ce.srh.patrimonio.util.lb" var="lb" /&gt;
		&lt;h:form id="movimentacao_patrimonio" prependId="false"&gt;
		
		
				&lt;h:panelGroup id="painel_orgao_pai"&gt;
				&lt;h:outputLabel value="Externo"/&gt;
				&lt;h:selectBooleanCheckbox  id="id_externo" value="#{movimentacaoMBean.externo}" &gt;
				&lt;f:ajax event="change" execute="@movimentacao_patrimonio" render="painel_orgao_pai"/&gt; 
				
				&lt;/h:selectBooleanCheckbox&gt;
			    <br />
		
				   &lt;h:panelGroup id="painel_orgao_externo" &gt;
				      &lt;h:outputLabel value="Orgao externo" id="lb_orgaoexterno" rendered="#{movimentacaoMBean.externo}"/&gt;
				        &lt;h:selectOneMenu value="#{movimentacaoMBean.orgaoExterno.cdOrgao}" id="codOrgao" rendered="#{movimentacaoMBean.externo}" &gt;
					      &lt;f:selectItem itemLabel="" /&gt;
						  &lt;f:selectItems value="#{movimentacaoMBean.listaDeOrgsExternos}" /&gt;
					  &lt;/h:selectOneMenu&gt;
				&lt;/h:panelGroup&gt;
			&lt;/h:panelGroup&gt;
				
		
		
		&lt;/h:form&gt;
		
&lt;/ui:define&gt;

	&lt;/ui:composition&gt;

&lt;/html&gt;

e da o seguinte erro:


GRAVE: Error Rendering View[/pages/MovimentarPatrimonio.xhtml]
com.sun.facelets.tag.TagException: /pages/MovimentarPatrimonio.xhtml @19,90 &lt;f:ajax&gt; Tag Library supports namespace: http://java.sun.com/jsf/core, but no tag was defined for name: ajax
	at com.sun.facelets.compiler.CompilationManager.pushTag(CompilationManager.java:193)
	at com.sun.facelets.compiler.SAXCompiler$CompilationHandler.startElement(SAXCompiler.java:194)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(Unknown Source)
	at javax.xml.parsers.SAXParser.parse(Unknown Source)
	at com.sun.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:232)
	at com.sun.facelets.compiler.Compiler.compile(Compiler.java:104)
	at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:192)
	at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141)
	at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93)
	at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:510)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:341)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527)
	at java.lang.Thread.run(Unknown Source)

f:ajax não eh só a partir do JSF 2.0?

Bahh é sim, não tinha me tocado para este pequeno detalhe :S