扩展 JSF 多级模板中特定部分的最佳方法
Best way to extend a particular section in JSF multilevel template
我有一个多级 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
,并且在您告诉 JSF 的 ui:define 中,请将这些页面插入到位导航模块。这里要注意的两个要点是
- 确保提及模板名称,即您可以在 ui:composition 标记后立即看到,即 template/layout.xhtml(原因是您需要所有模板功能)
- 在
ui:define
中使用您想要覆盖的确切名称,即在您的情况下它是 navigation-module
希望我对你很清楚。如果您需要任何进一步的说明,请随时发表评论。
我有一个多级 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
,并且在您告诉 JSF 的 ui:define 中,请将这些页面插入到位导航模块。这里要注意的两个要点是
- 确保提及模板名称,即您可以在 ui:composition 标记后立即看到,即 template/layout.xhtml(原因是您需要所有模板功能)
- 在
ui:define
中使用您想要覆盖的确切名称,即在您的情况下它是 navigation-module
希望我对你很清楚。如果您需要任何进一步的说明,请随时发表评论。