Olá pessoal, estou criando um pagina em JSF que recebe parâmetros via GET, consigo exibi-los usando a tag OutputLabel. Porem no ManagedBean da pagina as variáveis que recebem os valores estão nulas. Neste caso qual seria a melhor estratégia ?
Chamada do método do redirect.
public void pesquisar(){
FacesContext context = FacesContext.getCurrentInstance();
try {
context.getExternalContext().redirect(context.getExternalContext().getRequestContextPath() + "/pesquisa/" + key + "/1");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
}
Configuração da URL no PrettyFaces.
<url-mapping id="urlpesquisa" >
<pattern value="/pesquisa/#{key}/#{pagina}" />
<view-id value="/faces/pesquisa.xhtml" />
</url-mapping>
Pagina de pesquisa.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<f:view>
<f:metadata>
<f:viewParam name="key" value="#{pesquisaBean.key}" ></f:viewParam>
<f:viewParam name="pagina" value="#{pesquisaBean.pagina}"></f:viewParam>
</f:metadata>
</f:view>
</h:body>
<ui:composition template="/artVenture_template.xhtml">
<ui:define name="content">
<h:outputLabel value="#{pesquisaBean.key}"></h:outputLabel>
<h:outputLabel value="#{pesquisaBean.pagina}"></h:outputLabel>
</ui:define>
</ui:composition>
</html>
ManagedBean da pagina de pesquisa.
package br.com.ngi.artventure.pesquisa;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class PesquisaBean implements Serializable {
private static final long serialVersionUID = 1L;
private String key;
private String pagina;
@PostConstruct
public void init(){
showValues();
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getPagina(){
return this.pagina;
}
public void setPagina(String pagina){
this.pagina = pagina;
}
public void showValues(){
System.out.println("key = " + key);
System.out.println("pagina = " + pagina);
}
}