我创建了一个合成模板:
<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
,如果他没有,那么我隐藏第二个panelGroup然后显示第一个。
我正在尝试这样做但不起作用。 有什么想法吗?
没有登录:
登录后:
with login http://img89.imageshack.us/img89/9866/0602nov.jpg
答案 0 :(得分:1)
在entity.User
课程中,替换
private int id;
通过
private Integer id;
这样,它将默认为null
而不是0
,因此#{empty userc.userb.user.id}
将为true
。无论如何,通常的做法是在实体的属性中使用包装器而不是基元。