a4j:jsFunction - redirecionamento para outcome

4 respostas
A

Olá pessoal.

Estou utilizando a4j para adicionar suporte AJAX a um projeto com JSF 1.2.
Criei uma jsp onde através de uma função declarada com a tag a4j:jsFunction, desejo executar um método do meu backing bean.

Até aqui tudo funciona corretamente, porém gostaria que o retorno deste método chamado no meu backing bean, fosse um outcome para outra página declarada nas regras de navegação do faces-config.xml.

Quando o método é executado e o método retorna a string do meu outcome, nada acontece no client. A página não é redirecionada.

Abaixo seguem alguns trechos de código para ilustrar a utilização:

Código da JSP:

...
<a4j:jsFunction action="#{backingBean.executar}" name="executar">
	<a4j:actionparam name="response" assignTo="#{backingBean.response}"/>
</a4j:jsFunction>
...

Código do Backing bean:

public class BackingBean {
	private String response = "";
	
	public String executar() {
		System.out.println(response);
		return "proximaPagina"; // RETORNO DO OUTCOME
	}

	public String getResponse() {
		return response;
	}

	public void setResponse(String response) {
		this.response = response;
	}
	
}

Alguém poderia me ajudar com esta dúvida?
Será que terei que fazer algum “workarround” para resolver isso? :?

Obrigado.

4 Respostas

A

RESOLVIDO.

É necessário definir a regra de navegação com na declaração do faces-config.xml.

Para mais detalhes: http://docs.jboss.org/richfaces/latest_3_3_X/en/devguide/html/a4j_commandLink.html

J

Amigo, estou com um problema semelhante ao seu mas no meu caso o método no meu bean faz um forward para outra página, por exemplo

public String metodoNoBean() {
//modificacoes nas propriedades do bean
return "/restrito/outraPagina.jsf";
}

E eu chamo esse método do bean no atributo action da minha tag a4j:jsFunction/.

O foward é feito, os dados modificados no bem são mostrados nos input’s, mas os inputs ficam TODOS travados.

Se eu tento usar o simplesmente os dados antes carregados no bean não são criados, pois é outra request.

Alguma dica?

A

jfb0101,

se o forward chegou a ser realizado e a proxima pagina foi renderizada acho estranho os campos terem ficados travados.
Desconfio que exista alguma regra para os campos da sua proxima pagina para que os campos fiquem desabilitados.
Voce esta usando binding ou value para mapear seus campos da tela?

J

adolfo_eloy, consegui resolver o problema aqui:

http://www.guj.com.br/java/266019-resolvido-manter-managed-bean-request-scoped-mesmo-com-redirect

Vlw.

Criado 25 de abril de 2011
Ultima resposta 3 de mar. de 2012
Respostas 4
Participantes 2