我在jsf应用程序中使用facelets进行模板化。我想在ui:composition标签中有条件地包含一个模板文件。如果用户已登录,则模板必须为“authorized.xhtml”,如果用户未登录,则模板必须为“unauthorized.xhtml”。有办法吗?感谢。
<ui:composition template="/templates/unauthorized.xhtml">
<ui:composition template="/templates/authorized.xhtml">
我正在使用JSF 1.2。
答案 0 :(得分:6)
我会在isAuthorized()
属性上尝试三元操作,如果你的登录bean中有一个:
<ui:composition template="#{loginbean.authorized ? '/templates/authorized.xhtml' : '/templates/unauthorized.xhtml'}">
或者使用两个<h:panelGroup>
代码,其中包含适当的rendered
值:
<h:panelGroup rendered="#{loginbean.authorized}">
<ui:decorate template="/templates/authorized.xhtml">
</h:panelGroup>
<h:panelGroup rendered="#{not loginbean.authorized}">
<ui:decorate template="/templates/unauthorized.xhtml">
</h:panelGroup>