Pergunta

Aqui a minha página JSF:

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:f="http://xmlns.jcp.org/jsf/core">

    <f:metadata>  
        <f:viewParam name="id" value="#{productDetailBean.id}" />  
    </f:metadata> 

    <h:head>
        <title>Facelet Title</title>
    </h:head>

    <h:body>
        <h:outputText value="1=#{productDetailBean.id}" />
        <br/>
        <h:outputText value="2=#{param['id']}" />
        <br/>
        <h:outputText value="3=#{productDetailBean.param}" />
    </h:body>
</html>

E o feijão

import java.io.Serializable;
import java.util.Map;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@ViewScoped
public class ProductDetailBean implements Serializable{  

    private String id;  

    public String getParam(){
        FacesContext context = FacesContext.getCurrentInstance();
        Map<String, String> paramMap = context.getExternalContext().getRequestParameterMap();
        String projectId = paramMap.get("id");
        return projectId;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
} 

Quando eu passar parâmetros como este:/getshipment.o xhtml?id=123
eu fico saída

1=
2=123
3=123

Segunda e terceira forma está funcionando bem.Porque primeiro não está funcionando ?E qual é a maneira correta para obter o parâmetro ?

Foi útil?

Solução

Tente ir com pelo menos 2.2.2 com o GlassFish 4.Antes 2.2.x Mojarra lançamentos de ter conhecido de questões de compatibilidade com o novo http://xmlns.jcp.org/jsf/ JSF espaços de nomes.

Veja também:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top