我对使用 JSF 很陌生,我不确定这是否是正确的方法,但在 Rails 中,您通常有一个主应用程序文件,当前页面加载到该文件中。这样我就不必担心每次都复制粘贴菜单等。
如何使用 JSF 2 实现这一目标?我可以每次都导航到同一个主页并告诉它加载当前内容吗?或者我是否告诉我导航到的当前页面以加载“内容周围的主框架”?
谢谢!
是的,当然,JSF 2.0 具有页面模板功能。您定义了一个模板,该模板定义了所有视图页面的通用布局。
用于创建基本页面的 Facelets 标签:
ui:insert
;例如:
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
template="/templates/myLayout.xhtml">
<ui:define name="menu">
<ui:include src="/mypath/menu.xhtml"/>
</ui:define>
<ui:define name="content">
<ui:include src="/mypath/content.xhtml"/>
</ui:define>
</ui:composition>
或者
<ui:insert name="content">
<ui:include src="/mypath/mycontent.xhtml"/>
</ui:insert>
JSF 不支持您要归档的内容。相反,它支持视图和基本布局(模板)。你需要这个:
<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
template="path/to/template.xhtml>
<your custom content here/>
<ui:composition/>