Как показать и скрыть, если пользователь вошел в систему? - PullRequest
1 голос
/ 02 ноября 2011

Я создаю шаблон композиции:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:cs="http://java.sun.com/jsf/composite/composite">

    <h:panelGroup rendered="#{not empty userc.userb.user.id}">
        <h:panelGrid columns="3">
            <h:outputText value="Welcome, " />
            <h:outputLink value="profile.xhtml">
                <h:outputText value="#{userc.personb.person.name}" />
            </h:outputLink>

            <h:form>
                <h:commandLink action="#{userc.logout}">Log out</h:commandLink>
            </h:form>
        </h:panelGrid>
    </h:panelGroup>

    <h:panelGroup rendered="#{empty userc.userb.user.id}">
        <h:outputLink value="pages/login.xhtml">Login</h:outputLink>
    </h:panelGroup>
</ui:composition>   

Я хочу скрыть первый panelGroup, если пользователь не вошел в систему, если он это делает, я скрываю вторую группу панелей, а затем показываю первую.

Я пытаюсь сделать это, но не работает.Есть идеи?

Без логина:

without login

После логина:

с логином http://img89.imageshack.us/img89/9866/0602nov.jpg

1 Ответ

1 голос
/ 02 ноября 2011

В вашем entity.User классе замените

private int id;

от

private Integer id;

Таким образом, по умолчанию будет null вместо 0 и, таким образом, #{empty userc.userb.user.id} будет true. В любом случае, обычной практикой является использование оболочек вместо примитивов в свойствах сущности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...