Passar parametros com jsf

1 resposta
AnderLuiz

Pessoal, tenho um formulario de cadastro e quero exibir uma mensagem de “Cadastro realizado com sucesso” na mesma pagina. O problema é que está dando erro quando passo o parametro.

cadastro.jsf

<h:outputText value="#{produtoBean.mensagemsucesso}" /
//formulario
//...
<h:commandButton value="Finalizar cadastro"  action="#{produtoBean.finalizarCadastro}" />

meubean

public String finalizarCadastro(){
       //Realiza o cadastro
       //...
       FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().put("mensagem", "Cadastro realizado com sucesso"); // Erro nesta linha
       return "atualizarPagina";
}

private String mensagemsucesso = "";

public String getMensagemsucesso() {
		return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("mensagem");
	}

Erro:

//...
root cause

javax.faces.el.EvaluationException: java.lang.UnsupportedOperationException
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54)
	javax.faces.component.UICommand.broadcast(UICommand.java:383)
	org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321)
	org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296)
	org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253)
	org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466)
	com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)

root cause

java.lang.UnsupportedOperationException
	java.util.Collections$UnmodifiableMap.put(Collections.java:1285)
	beans.ProdutoBean.adicionarProdutoPendente(ProdutoBean.java:170)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	java.lang.reflect.Method.invoke(Method.java:597)
	org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
	javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77)
	org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54)

//...

Se alguem souber resolver ou alguma forma melhor de resolver meu problema peço que me informe

Desde já obrigado

1 Resposta

AnderLuiz

up!

aluguém sabe de alguma maneira de fazer essa confirmação na página com jsf? minha lógica está certa? Há alguma maneira melhor de fazer isso?

Criado 14 de setembro de 2009
Ultima resposta 15 de set. de 2009
Respostas 1
Participantes 1