Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como recuperar valores que estão na sessão

Prezados, Tentei recuperar os valores que estão na minha sessão diretamente no meu xhtml, mas não consegui. Gostaria de saber se posso fazer isso diretamente no xhtml ou tenho que pegar os valores no bean e setar em algum objeto para a partir daí, pode acessa-los no meu xhtml. Eu usei da mesma maneira que está no exemplo da atividade, mas não obtive o sucesso. Segue a forma como eu usei:

<h:outputText value="#{sessionScope['usuarioLogado'].email}" />
3 respostas

Olá Mateus, eu coloquei no template, abaixo do logo da caelum e funcionou.

Pelo que entendi 'usuarioLogado' é a key(String) do SessionMap do método efetuaLogin do LoginBean, portando não é preciso fazer qualquer outra alteração, isso se vc seguiu o passo-a-passo da ultima aula.

<div id="cabecalho">
    <h:graphicImage library="img" name="logo.png"/>
    <h:outputText value="#{sessionScope['usuarioLogado'].email}" />
    <h1><ui:insert name="titulo"></ui:insert></h1>
</div>
solução!

Fala Mateus, tudo bem ?

Se você não tem um managed bean neste escopo, primeiro precisa lembrar como seu objeto foi definido na sessão.

Exemplo: FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("suaChave", object);

Aí pode recuperar o objeto no xhtml.

Exemplo: <h:outputText value="#{sessionScope.suaChave}" /> ou <h:outputText value="#{sessionScope.['suaChave']}" />

Creio que isso já resolve o caso. Mas, consideraria ter um managed bean session scoped pra gerenciar isso pra você. Depende do contexto da explicação.

Abraço

Amigos,

Obrigado pelas respostas, mas aqui continuou sem aparecer, até que, eu reiniciei o tomcat. Não tinha reiniciado antes pois, não sabia que precisava, visto que só tinha alterado o .XHTML. Ambas as respostas me ajudaram, mas como só posso marcar uma como solução do post, marcarei a resposta do Rafael por ter mais informações sobre passo a passo.