У меня есть многоуровневый шаблон JSF, скажем layout.xhtml, который простирается от номера шаблона, который изображен ниже.
layout.xhtml -> level3.xhtml -> level2.xhtml -> level1.xhtml
Как расширить level1.xhtml и добавить еще один фейслет, скажем, модуль данных клиента в level1.xhtml, и иметь все лицевые стороны 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">
<h:panelGroup id="identifier-zone" layout="block">
<ui:insert name="navigation-module" />
<ui:insert name="time-module" />
</h:panelGroup>
</ui:composition>
И это мой новый файл, который я создал, т.е. templates / customer-data.xhtml
<ui:composition template="/templates/level1.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<!-- This is what I want to add i.e. customer-data-module-->
<ui:define name="identifier-zone">
<ui:insert name="customer-data-module" />
</ui:define>
</ui:composition>
Ниже приведена моя реализация WEB-INF / views / customer-data.xhtml.
<ui:composition template="/templates/customer-data.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:define name="left-navigation">
<ui:include src="/WEB-INF/left-navigation.xhtml'/>
</ui:define>
<ui:define name="customer-data-module">
<ui:insert name="/WEB-INF/customer-data.xhtml" />
</ui:define>
</ui:composition>
Здесь я хочу, чтобы все лицевые стороны были определены в layout.xhtml (я хочу получить общий шаблон, т.е. layout.xhtml). Я не понимаю, как это сделать.
Редактировать 1: пробовал с <ui:decorate>
templates / customer-data.xhtml
<ui:composition template="/templates/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">
<!-- This is what I want to add i.e. customer-data-module-->
<ui:decorate template="/templates/level1.xhtml" >
<ui:define name="identifier-zone">
<ui:insert name="customer-data-module" />
</ui:define>
</ui:decorate>
</ui:composition>