1
resposta

Forma elegante de mostrar usuario logado na tela.

Boa noite, tenho uma aplicação em java com JSF, e gostaria de mostrar, na tela o nome do usuario logado, o jeito que eu sei, é com o metodo get, da classe FacesContext, algo como isso.

Aqui estou trazendo o usuarioLogado, também tem de outros metodos ou modo de fazer isso.

public void usuarioLogado() {
        Usuario usuario = (Usuario) context.getExternalContext().getSessionMap().get("usuarioLogado");
        System.out.println("Usuario logado: " + usuario.getLoguin());
    }

Minha pergunta é, no que mostrar o meu usuario logado? Qual componente que mostre ele de forma elegante, que chame mais atenção do usuario, lembrando que uso primefaces, como vocês fazem isso?

1 resposta

Eu gosto de deixar uma barra acima do usuário, pois ela é útil na navegação e permite que o usuário faça logout quando quiser.

Eu geralmente declaro uma página xhtml e depois reutilizo ela em todas as páginas via include

<ui:include src="/Public/Components/Headers/Header.xhtml"/>

Veja um exemplo meu:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:p ="http://primefaces.org/ui"
                xmlns:f="http://xmlns.jcp.org/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:fn='http://java.sun.com/jsp/jstl/core'>

    <div class="banner">
        <div class="cabecalho">
            <p:toolbar>
                <f:facet name="left">
                    <fn:set var="homevar" scope="session" value="#{session.getValue('usr')}"/>
                    <fn:if test="${homevar != null}">
                        <h:form>
                            <p:commandButton value="Início" action="#{ManageUserManagedBean.gotoDashboardUser()}" icon="ui-icon-home" />
                            <p:commandButton value="Configurações" action="#{ManageUserManagedBean.gotoEditarUsuario('Public')}"  icon="ui-icon ui-icon-wrench" />
                        </h:form>
                    </fn:if>
                </f:facet>

                <f:facet name="right">
                    <fn:set var="usuario" scope="session" value="#{session.getValue('usr')}"/>
                    <fn:if test="${usuario == null}">
                        <h:form>
                            <p:inputText class="inputHeader" placeholder="Usuário" value="#{ManageUserManagedBean.loginUser.loginUser}"/>
                            <p:password class="inputHeader" placeholder="Senha" value="#{ManageUserManagedBean.loginUser.passwordUser}"/>
                            <p:commandButton class="buttonHeader" action="#{ManageUserManagedBean.realizarLogon()}" value="Entrar" icon="ui-icon-circle-check" />
                            <span class="ui-separator">
                                <span class="ui-icon ui-icon-grip-dotted-vertical" />
                            </span>
                            <p:commandButton class="buttonHeader" value="Cadastro" action="#{ManageUserManagedBean.gotoAdicionarUsuario('Public')}" icon="ui-icon-star" />
                        </h:form>
                    </fn:if>
                    <fn:if test="${usuario != null}">
                        <h:form>
                            <p:outputLabel value="Olá, #{session.getValue('usr')}!"/>
                            <span class="ui-separator">
                                <span class="ui-icon ui-icon-grip-dotted-vertical" />
                            </span>
                            <p:commandButton  action="#{ManageUserManagedBean.realizarLogoff()}" value="Sair" icon="ui-icon-power" />
                        </h:form>
                    </fn:if>
                </f:facet>
            </p:toolbar>         
            <div class="separator"/>
        </div>
    </div>
</ui:composition>