<f:param>

1 resposta
D
Pessoal, quero criar um link que ao ser clicado, passe um valor para meu Bean (Não sei se isso é correto fazer). Vejam o que já fiz:
<h:outputLink target="_self" value="#{ContatoBean.recebeParam(oi)}">
			<f:param name="oi" value="mensagem" />
			<h:outputText value="Estudos" />
		</h:outputLink>
No bean:
public void recebeParam(String oi){
		//recebe valor;
		
	}
Ao tentar rodar, dá o seguinte erro:
The function recebeParam must be used with a prefix when a default namespace is not specified
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
	at org.apache.jasper.compiler.Validator$ValidateVisitor$1FVVisitor.visit(Validator.java:1506)
	at org.apache.jasper.compiler.ELNode$Function.accept(ELNode.java:129)
	at org.apache.jasper.compiler.ELNode$Nodes.visit(ELNode.java:200)
	at org.apache.jasper.compiler.ELNode$Visitor.visit(ELNode.java:242)
	at org.apache.jasper.compiler.ELNode$Root.accept(ELNode.java:56)
	at org.apache.jasper.compiler.ELNode$Nodes.visit(ELNode.java:200)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.validateFunctions(Validator.java:1531)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1176)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:846)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:865)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:865)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
	at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1763)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:347)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:410)
	at com.sun.faces.application.ViewHandlerImpl.executePageToBuildView(ViewHandlerImpl.java:468)
	at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:140)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

Como posso fazer?

obrigado

1 Resposta

K
<h:outputLink target="_self" value="#{ContatoBean.recebeParam}"> // esse método não precisa receber parametros por aqui.  
            <f:param name="v_recebeParam" value="mensagem" />  
             <h:outputText value="Estudos" />  
 </h:outputLink>
public void recebeParam(){  

       String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get( "v_recebeParam" );
       System.out.println(id);  
           
 }

tenta usar esse, se não for assim está bem proximo.

Criado 10 de dezembro de 2010
Ultima resposta 10 de dez. de 2010
Respostas 1
Participantes 2