Carregar Login para outra pagina JSF

1 resposta
Emillyewilliammorett

Bom Dia,
Tenho um Login pronto e funcionando, agora quero que quando logar, a próxima pagina consiga setar o Login para aparecer que esta logado e consequentemente quando gravar um atendimento ele ainda permaneça logado, para que possa esta gravando outros atendimentos,
Alguém tem algum exemplo ou uma dica Obrigado.
Estou desenvolvendo em JSF

1 Resposta

betofroesjr

Boa tarde, você pode salvar seu objeto usuario na sessão, segue alguns códigos que pode te ajudar tente entender eles não só utilizar.

public static ContextoBean getContextoBean() {
    FacesContext context = FacesContext.getCurrentInstance();
    ExternalContext external = context.getExternalContext();
    HttpSession session = (HttpSession) external.getSession(true);
    ContextoBean contextoBean = (ContextoBean) session.getAttribute("contextoBean");
    return contextoBean;
}
public static void setObjetoSessao(String parametro, Object objeto) {
    // Busca instancia corrente da sessão
    ExternalContext extCon = FacesContext.getCurrentInstance().getExternalContext();
    // Associação da sessão corrente com esta requisição (desta página)
    HttpSession session = (HttpSession) extCon.getSession(true);
    //TODO Verifica se já tem objeto na sessão apaga antes para atualizar - em teste -
    if(getObjetoSessao(parametro) != null){
        deletarObjetoSessao(parametro);            
    } 
    // Setar objeto na sessão corrente
    session.setAttribute(parametro, objeto);
}
/**
 * Pega objeto na sessão corrente, pelo seu respectivo parametro
 */
public static Object getObjetoSessao(String parametro) {
    // Busca a instancia da sessão corrente
    ExternalContext extCon = FacesContext.getCurrentInstance().getExternalContext();
    // Associação da sessão corrente com esta requisição (desta página)
    HttpSession session = (HttpSession) extCon.getSession(true);
    // retorno de objeto inserido na sessão corrente
    return (session.getAttribute(parametro));
}
/**
 * Deleta objeto na sessão corrente, pelo seu respectivo parametro
 */
public static void deletarObjetoSessao(String parametro) {
    // Busca instancia corrente da sess�o
    ExternalContext extCon = FacesContext.getCurrentInstance().getExternalContext();
    // Associação da sessão corrente com esta requisição (desta página)
    HttpSession session = (HttpSession) extCon.getSession(true);
    // Remove atributo da sess�o corrente
    session.removeAttribute(parametro);
}

public static FacesContext getInstance(){
    return FacesContext.getCurrentInstance();
}

public static HttpSession getSessao(){
    FacesContext fc = ContextoUtil.getInstance();
    ExternalContext ec = fc.getExternalContext();
    return (HttpSession) ec.getSession(false);
}
Criado 23 de julho de 2016
Ultima resposta 23 de jul. de 2016
Respostas 1
Participantes 2