Richfaces - jsfunction + action parameter

Estou com problema com a tag do Richfaces jsfunction.

Consigo realizar toda a chamada, porém o parameto que passo no action parameter vem sempre errado.
Na primeira vez que executo a função vem o valor nulo e na segunda, vem o valor correto, porém da primeira chamada.

Olhei algo sobre um bug do richfaces, mas pelo que eu entendi já foi corrigido na versão 3.1 e estou usando a versão 3.2.2.
Alguém já passou por esse problema?
Segue o código:

<a4j:jsFunction name="teste" actionListener="#{beanTeste.teste}" >
      <a4j:actionparam name="param1" assignTo="#{beanTeste.nome}" />                  
</a4j:jsFunction>

Os seus managed beans estão setados para qual tipo de escopo?

Estão com session…
Isso pode influenciar nos parametos???

vc não precisa passar o parametro.

pelo código que vc colocou o parametro está no mesma classe.

é só vc pegar o valor no proprio bean.

public void teste(){ String bla = this.nome; }

Era como eu pensei.

Já que session mantem o estado da página o tempo todo, e o controle de “limpeza” e requisição deve ser feito com mais cuidado pelo desenvolvedor.

Ok, retirei o parameto como o spycall falou e funcionou, porém do mesmo jeito que tava antes, o valor vem sempre de um clique anterior.

Como podeira fazer essa “limpeza”?

O valor que vc queria passar como parametro vem de onde?

Corrigindo, não deu certo não sem o actionparam, porque, se não tiver como vaou saber pra que mandar esse atributo???

<a4j:actionparam name=“param1” assignTo="#{beanTeste.nome}" /> aqui estou passando para o nome.

O valor vem de uma função javascript, por isso estou usando jsfunction.

vc pode passar o parametro pelo proprio javascript:

teste('12234');

ele vai jogar o 12234 no atributo nome do seu bean

Construo minhas páginas programaticamente, e em um determinado momento em um gráfico que estou usando preciso chamar uma função javascript.
Chamo ela assim “JavaScript:teste(lalala);” e funciona a passagem do parameto sim, porém está vindo com valor trocado.

trocado como?

O valor vinha sempre como o anterior.
Tipo: em um link chama a funcao passando 001 e no outro link chama a funcao passando 002

Estava retornando na primeira vez sempre null, e depois o valor do primeiro clique, se eu clicasse no 001 e depois no 002 o retorno era null, 001.

Agora fazendo um teste, ao invés de no jsfunction chamar um actionlistener, chamei direto um action e dai funcionou perfeitamente, agora não sei o porque disso.

O importante é que agora está funcionado… Se souberem o porque disso…

Valeu pela força spycall e Grinvon . Obrigado.

Não está faltando um reRender para ele atualizar o valor?

tente colocar a funcao no oncomplete do link :wink:

vc está usando o “actionListener”, que é disparado antes de ter realmente o executado a ação.
Substitua a propriedade “actionListener” por “action”.

<a4j:jsFunction name="teste" action="#{beanTeste.teste}" >
      <a4j:actionparam name="param1" assignTo="#{beanTeste.nome}" />                  
</a4j:jsFunction>