Action do a4j:commandLink não funciona

3 respostas
R

É o seguinte estou fazendo uma aplicação com JSF e Rich Faces e estou com um problema.
Eu tenho uma tabela que lista todos os meus projetos.
Nessa tabela eu tenho um a4j:commandLink que quando o usuario clica em cima, ele da um reRender em uma outra tabela, onde lista as atividades referente ao projeto que o usuario selecionou.
Isso está funcionando perfeitamente!
O problema é q na tabela que esta listando as atividades do projeto eu preciso ter um a4j:commandLink para que qdo o usuario clicar na atividade ele vai ter a opção de excluir a atividade.
O problema é q o action do a4j:commandLink da tabela de atividade não funciona… ele n chama nenhum método e não da nem um submit… ele n faz nada!!!
Eu achei uma solução no google que diz q é só mudar o managed-bean-scope do para session, porem eu qria saber se tem uma outra solução?
Segue o codigo:

<h:form id="lisst">
	
	 <!-- Panel de listagem de projeto -->
	 <rich:tabPanel styleClass="listar" >
	 	<rich:tab label="Listar">
	 	<div class="table">
	 	
	 	<h:outputText value="Nenhum projeto cadastrado ainda!" rendered="#{empty projAction.listProjetoDetalhes}"/>
	 	
	 	<rich:dataTable value="#{projAction.listProjetoDetalhes}" var="projeto" id="listProj" 
	 			 rows="8" reRender="dsProj" rendered="#{not empty projAction.listProjetoDetalhes}">
	 		<f:facet name="header">
	 			<rich:columnGroup>
					<rich:column>
						<h:outputText value="Nome" />
					</rich:column>
					<rich:column>
	 					<h:outputText value="Cliente" />
	 				</rich:column>	 				
	 			</rich:columnGroup>
	 		</f:facet>
	 		<rich:column>
	 			<a4j:commandLink value="#{projeto.projeto.nome}" reRender="tabpanelAtiv" action="#{projAction.getValueDataTable}" > 
					<f:param name="rowValue" value="#{projeto.projeto.nome}"/>
	 			</a4j:commandLink>
	 		</rich:column>
	 		<rich:column>
	 			<h:outputText value="#{projeto.nomeCliente}" />
	 		</rich:column>	 		
	 		<f:facet name="footer">
		        <rich:datascroller for="listProj" maxPages="15" id="dsProj"/>
	 		</f:facet>
		</rich:dataTable>
	 	</div>
	 	</rich:tab>
	 </rich:tabPanel>
	 </h:form>
	 
	 <a4j:form>
	 <!-- Panel de listagem de atividades do projeto -->
	 <rich:tabPanel id="tabpanelAtiv" styleClass="listar">
	 	<rich:tab label="Atividades">
	 	<div class="table">
	 		
	
	 		<rich:dataTable value="#{projAction.listAtividade}" var="atividade" id="listAtividadesProj" rows="8"  	reRender="dsAtiv" rendered="#{not empty projAction.listAtividade}" >
	 		<f:facet name="header">
	 			<rich:columnGroup>
					<rich:column>
						<h:outputText value="Nome" />
					</rich:column>
					<rich:column>
	 					<h:outputText value="Excluir" />
	 				</rich:column>
	 			</rich:columnGroup>
	 		</f:facet>
	 		<rich:column>
	 			<h:outputText value="#{atividade.nome}" />
	 		</rich:column>
	 		<rich:column>
	 			<a4j:commandLink value="Excluir" action="#{projAction.teste}">  // aqui ta o problema
					<f:param name="rowValue" value="Isso é um Teste"/>
	 			</a4j:commandLink>
	 		</rich:column>
	 		<f:facet name="footer">
		        <rich:datascroller id="dsAtiv" for="listAtividadesProj" maxPages="15"/>
	 		</f:facet>
		</rich:dataTable>
	 	</div>
	 	</rich:tab>
	 <!-- Fim do Panel de listagem de atividades do projeto -->
	 </rich:tabPanel>
	 </a4j:form>

Obrigado

3 Respostas

G

Se não quiser utilizar session, utilize o componente saveState do tomahawk,
ou o Keep Alive do RichFaces.

Se quiser entender o porque do problema, dê uma olhada nesse artigo:
http://www.urubatan.com.br/jsf_commandlink_datatable_problemas/

Luiz_Gustavo

Olá RFaria,

ontem estava com um problema parecido com o seu e consegui resolver. Dê uma olhada nesse post: http://www.guj.com.br/posts/list/109814.java#628992

Por que está usando dois forms? Tente colocar tudo dentro de um só (do primeiro).

Abraço!

R

E ai Gbzao, blz?
Cara então brigadão pela resposta.
Eu usei o Keep Alive do RichFaces e funcionou :smiley:

Luiz_Gustavo valeu pela resposta tbm.
Então na verdade eu tava usando dois form’s só pra fazer um teste.
Eu ja estou usando um form novamente.
Brigadão ai pela ajuda.

Criado 28 de janeiro de 2009
Ultima resposta 28 de jan. de 2009
Respostas 3
Participantes 3