Nao esta pegando a Sessao no JSF

Salve galera,
Estou tentando pegar a sessao da minha aplicação em JSF.
Segue o codigo da classe:

import Padrao.PegaDiretorioConfig;
import Padrao.PegaSessao;
import Padrao.atmc_tc.params.propriedades.ConfigParametrosTitulo;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;
import javax.faces.application.FacesMessage;
import java.util.ResourceBundle;

public class LerXmlTitulo {
    
    private String id          = null;
    private String configPath  = null;
    private String titulo      = null;
    private FacesContext context = null;
    private HttpSession session  = null;
    
    public void pegaTitulo(){
        try{
            PegaDiretorioConfig pegaDiretorioConfig = new PegaDiretorioConfig();
            pegaDiretorioConfig.adiquireDiretorio();
            setaValores();
            ConfigParametrosTitulo configParametrosTitulo = new ConfigParametrosTitulo(pegaDiretorioConfig.getConfigPath(), getId());
            setTitulo(configParametrosTitulo.getTitulo());
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    public String getId() {
        return id;
    }
    
    public void setId(String _id) {
        this.id = _id;
    }
    
    public String getConfigPath() {
        return configPath;
    }
    
    public void setConfigPath(String _configPath) {
        this.configPath = _configPath;
    }
    
    public String getTitulo() {
        pegaTitulo();
        return titulo;
    }
    
    public void setTitulo(String _titulo) {
        this.titulo = _titulo;
    }    
    
     private void setaValores(){
        //pega a instacia corrente do contexto
        context = FacesContext.getCurrentInstance();
   
        //pega o contexto e joga na variavel sessao
        session = (HttpSession) context.getExternalContext().getSession(false);
        id = (String) session.getAttribute("id");
    }
}

Segue a url que estou passando no navegador:
http://localhost:8084/Atendimento/faces/Login/TelefoneDdd.jsp?id=23

Segue o meu codigo do do faces-config

 <managed-bean>
        <managed-bean-name>tituloatmc</managed-bean-name>
        <managed-bean-class>Padrao.LerXmlTitulo</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

O problema é o seguinte, nao estou conseguindo pegar o valor do ID.
Onde estou errando?

Valeu mais uma vez galera!

vcsmetallica

Este id será um parâmetro na jsp, isto é, será um atributo do objeto request no seu jsp e não na session. Só se na sua jsp vc esta pegando este id do request e gravando na session.

Mas o ID nao fica no FacesContext.getCurrentInstance(); nao?
Tenho que usar um request primeiro para poder pegar o ID?

Afinal de contas, o que você quer pegar um dado da sessão, ou da solicitação? Bem para primeiro caso, quando o bean é de sessão neste caso aí você pode pegar pelo valueBinding ou pelo external context de acordo com o nome que tu colocou, neste teu caso seria tituloatmc. Agora pegar um atributo da solicitação seria através do external context, porque você não está usando nenhum artifício do framework para isto (desta forma não é legal).

:okok:

marcossousa,

qual a forma bacana de usar a framework para resolver esse problema?

valeu mais uma vez

vcsmetallica

Opa,

Você tem duas opções usar f:param dentro de h:commandLink para passar os dados ou criar um objeto Visit para registrar cada evento realizado.

:okok:

Cara, valeu.

Vou tentar aqui, mas se vc puder me mandar um exemplo usando o f:param e o Visit, ficarei grato.
Agora que estou aprendendo a mexer com JSF.

Valeu cara

vcsmetallica