Problema componentes ajax dinâmicos (Resolvido... + ou -)

1 resposta
Gerson_da_S_Lima

Pessoal, reeditei o post pra não ficar enchendo de código repetido

Estou tendo um problema com rich:tree e qualquer componente a4j. Se eu adiciono qualquer componte a4j me é retornado o erro:

java.lang.StackOverflowError
	at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:759)
	at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1119)
	at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
	at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
	at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
	at org.ajax4jsf.javascript.ScriptUtils.writeScriptToStream(ScriptUtils.java:168)
	at org.ajax4jsf.javascript.ScriptUtils.writeScriptToStream(ScriptUtils.java:83)

segue o código

fixem no trecho <!-- Aqui o problema -->

&lt;rich:tree id="arvoreProjeto" ajaxSubmitSelection="false" ajaxSingle="true" onmouseup="text-decoration: none"&gt;
						&lt;rich:recursiveTreeNodesAdaptor roots="#{beanAnaliseProjeto.arvore}" var="no" nodes="#{no.filhos}"&gt;
							&lt;rich:treeNode icon="#{no.image != null ? no.image : '/a4j/g/3_3_2.SR1images/iconFolder.gif.xhtml' }" iconLeaf="#{no.image != null ? no.image : '/a4j/g/3_3_2.SR1images/iconLeaf.gif.xhtml' }" onmouseup="text-decoration: none" &gt;
								&lt;h:outputText value="#{no.value }" title="#{no.title }" /&gt;
									
                                                                        &lt;!-- Aqui o problema --&gt;
                                                                        &lt;a4j:commandLink style="margin-left: 5px" rendered="#{no.renderedAprovarGlosar }" title="Aprovar" actionListener="#{beanAnaliseProjeto.aprovar }"&gt;
										&lt;f:param name="value" value="#{no }" /&gt;
										&lt;h:graphicImage url="/images/aprovar.png" /&gt;
									&lt;/a4j:commandLink&gt;
									&lt;a4j:commandLink rendered="#{no.renderedAprovarGlosar }" title="Glosar" actionListener="#{beanAnaliseProjeto.glosar }"&gt;
										&lt;f:param name="value" value="#{no }" /&gt;
										&lt;h:graphicImage url="/images/glosar.png" /&gt;
									&lt;/a4j:commandLink&gt;
									
									<br />
									&lt;t:div rendered="#{no.renderedValorJustificativaGlosa }" style="padding-left: 10px;padding: 0px"&gt;
										Valor Informado pela Empresa:<br />
										&lt;h:inputText disabled="true" style="margin-left: 30px" value="#{no.objeto.movimentacao.valor }"&gt;
											&lt;f:converter converterId="MoedaConverter"/&gt;
										&lt;/h:inputText&gt;
										<br />
										Valor Glosa:<br />
										&lt;h:inputText style="margin-left: 30px" id="valorGlosado" value="#{no.objeto.valorGlosado }"&gt;
											&lt;f:converter converterId="MoedaConverter"/&gt;
										&lt;/h:inputText&gt;
										&lt;h:message for="valorGlosado" /&gt;
										<br />
										Justificativa:<br />
										&lt;h:inputTextarea style="margin-left: 30px" id="justificativaGlosa" cols="60" rows="5" value="#{no.objeto.justificativaGlosa }" /&gt; &lt;h:message for="justifivativaGlosa" /&gt;
										<br />
										&lt;h:commandButton rendered="#{no.renderedValorJustificativaGlosa }" value="Salvar" actionListener="#{beanAnaliseProjeto.salvarGlosa }"&gt;
											&lt;f:param name="value" value="#{no }" /&gt;
										&lt;/h:commandButton&gt;
										&lt;h:commandButton rendered="#{no.renderedValorJustificativaGlosa }" value="Cancelar" actionListener="#{beanAnaliseProjeto.cancelarGlosa }"&gt;
											&lt;f:param name="value" value="#{no }" /&gt;
										&lt;/h:commandButton&gt;
									&lt;/t:div&gt;
							&lt;/rich:treeNode&gt;
						&lt;/rich:recursiveTreeNodesAdaptor&gt;
					&lt;/rich:tree&gt;

Percebi que é alguma coisa com a geração dinâmica dos componente a4j

E aí galera, algué ajuda?

1 Resposta

Gerson_da_S_Lima

Bem a solução foi colocar mas um parâmetro dentro do a4j:commandLink, assim:

&lt;a4j:commandLink action=#{meuBean.minhaAction} value="Link"&gt; &lt;f:param name="value" value="#{meuParametro}" /&gt; &lt;f:param name="value" value="1" /&gt; //não uso pra nada, é só pra fazer funcionar :) &lt;/a4j:commandLink&gt;

Parece meio gambiarra, mas foi a única forma que funcionou, inclusive eu fiz outro post pra saber se alguém sabe o que é isso.

Criado 29 de julho de 2010
Ultima resposta 4 de ago. de 2010
Respostas 1
Participantes 1