我属于Asp.Net,但刚开始学习JSF。我想知道MasterPage的所有功能是否都可以在JSF模板中使用?我的意思是假设我在模板中有一个菜单,并根据角色菜单的变化。如果管理员登录,他将显示更多选项,如果普通用户登录,他将看到更少的选项。现在我有一个托管bean用于我的“真实”页面(不是模板)。如何使用此托管bean在模板中打开和关闭我的控件?
答案 0 :(得分:3)
您可以像在ASP MasterPages中那样在JSF / Facelets中完成所有操作。您可以使用任何JSF组件的rendered
属性来切换是否需要在视图中呈现组件。它接受一个布尔表达式,它将导致组件(及其所有子组件)在true
时显示,否则在false
时完全隐藏。以下是几个例子:
<h:someComponent rendered="#{bean.booleanValue}" />
<h:someComponent rendered="#{bean.intValue > 10}" />
<h:someComponent rendered="#{bean.objectValue == null}" />
<h:someComponent rendered="#{bean.stringValue != 'someValue'}" />
<h:someComponent rendered="#{!empty bean.collectionValue}" />
<h:someComponent rendered="#{!bean.booleanValue && bean.intValue != 0}" />
<h:someComponent rendered="#{bean.stringValue == 'oneValue' || bean.stringValue == 'anotherValue'}" />
要了解有关JSF / Facelets的更多信息,我建议您在Java EE 6 tutorial part II chapters 4-9和Marty Hall's Coreservlets.com tutorials中阅读Sun自己的JSF教程。
答案 1 :(得分:0)