是否有关于如何<ui:define>
用<ui:insert>
.
模板 A:
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets">
template A content<br/>
<ui:insert name="content"/>
</ui:composition>
模板 B:
<ui:composition template="/resources/templates/A.xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:define name="content">
template B content<br/>
<ui:insert name="content"/>
</ui:define>
</ui:composition>
站点 1:
<ui:composition template="/resources/templates/B.xhtml">
Site 1<br/>
<ui:define name="content">
site content<br/>
</ui:define>
</ui:composition>
输出:
Site 1
site content
的内容<ui:define>
取自站点 1,模板的内容未呈现。
站点 2:
<ui:composition template="/resources/templates/B.xhtml">
Site 2<br/>
</ui:composition>
输出:
Site 2
template B content
template A content
的内容<ui:define>
取自模板 B 和模板 A,奇怪的是,模板 B 的内容在模板 A 的内容之前呈现。
是否可以使用相同的名称覆盖<ui:define>
新的<ui:insert>
名称?
为嵌套创建新名称<ui:insert>
是一种可能,但很难跟踪层次结构以及插入的位置。