Лучший способ расширить определенный раздел в многоуровневом шаблоне JSF - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть многоуровневый шаблон 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...