我有一个多层JSF模板,例如layout.xhtml,它从下面描述的模板数量开始扩展。
layout.xhtml-> level3.xhtml-> level2.xhtml-> level1.xhtml
如何扩展level1.xhtml和添加一个额外的facelets(我想总体上增加2个facelets),例如customer-data.xhtml和supplier-data.xhtml)继承自level1.xhtml代替navigation-module,并且也具有layout.xhtml的所有方面?
下面是我的template / level1.xhtml
<ui:composition
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:insert name="navigation-module" />
<ui:insert name="time-module" />
</ui:composition>
我想获得通用模板,即layout.xhtml,但我没有获得如何做的方法。
我相信您想为导航模块添加两个页面。非常简单,只需执行以下操作
<ui:composition
template=template/layout.xhtml
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:define name="navigation-module">
<ui:insert name="WEB-INF/customer-data.xhtml" />
<ui:insert name="WEB-INF/supplier-data.xhtml" />
</ui:define>
只要您提供正确的ui:insert
名称,即在您的情况下为navigation-module
,并且在ui:define中告诉JSF,请在导航模块的位置插入这些页面。这里要注意的两个要点是
ui:define
中覆盖的确切名称,即在您的情况下为导航模块我希望我对你很清楚。如果您需要进一步说明,请随时发表评论。