【发布时间】:2013-12-31 01:47:19
【问题描述】:
我是 JSF 和 Java 的初学者,请多多关照!
如果用户是管理员,我正在尝试呈现特定块。
我有一个模板。如果用户登录,此模板会正确呈现特定块。
admin.xhtml:
<ui:composition template="../../WEB-INF/tpl/admin/template.xhtml">
<ui:define name="sectionTitle">Admin</ui:define>
<!-- Logged as Admin -->
<ui:fragment rendered="#{user.admin}">
<ui:define name="body">
<h3>Welcome</h3>
<p>Please choose an administration task!</p>
</ui:define>
</ui:fragment>
</ui:composition>
模板.xhtml:
<div class="header">
<h2>
<ui:insert name="sectionTitle"> Default Section Title</ui:insert>
</h2>
<ui:insert name="logBox">
<ui:fragment rendered="#{not user.logged}">
<ui:include src="login.xhtml"></ui:include>
</ui:fragment>
<ui:fragment rendered="#{user.logged}">
<h:form>
<h:commandButton value="Logout"
action="#{userService.logout}" />
</h:form>
</ui:fragment>
</ui:insert>
</div>
<div class="corebody">
<ui:insert name="body"> Default Section Content</ui:insert>
</div>
我可以像这样在模板内移动渲染块:
<ui:fragment rendered="#{user.admin}">
<ui:insert name="body"> Default Section Content</ui:insert>
</ui:fragment>
但是关于每个文件的责任,这对我来说似乎不太好(这似乎并不通用,为什么模板中应该有这样的东西?)。
我是否遗漏了一些非常明显的东西?
【问题讨论】:
-
这个link可以帮助你
标签: jsf jsf-2 facelets templating