Как сделать динамический составной компонент - PullRequest
0 голосов
/ 23 декабря 2019

Так же, как ui: include может быть динамическим, вызывая src следующим образом:

<h:form id="form">

    <p:outputPanel id="title" value="This is the main xthtml page">

    <p:dialog header="Modal Dialog" modal="true">

        <ui:include src="#{mainBacking.compositePage}">
            <ui:param name="action" value="actionOne" />
        </ui:include>

    </p:dialog>

</form>

Я хочу вызвать составной компонент по источнику. Одна из проблем пользовательского интерфейса: include не может передавать методы в качестве параметров, в то время как составные компоненты могут. Как мне создать / вызвать динамический составной компонент, основанный на src? Текущий подход заключается в том, что мне нужно указать все составные компоненты в одном и том же файле xthml, как и в любом случае (конечно, это только минимальный воспроизводимый код, реальный намного длиннее с большим количеством параметров);

<h:form id="form">

    <p:outputPanel id="title" value="This is the main xthtml page">

    <p:dialog header="Modal Dialog" modal="true">

        <util:user-composite id="userModaL"
        bean="#{userBean}"></util:user-composite>

        <util:company-composite id="companyModaL"
        bean="#{companyBean}"></util:company-composite>

        <util:education-composite id="educationModaL"
        bean="#{eduBean}"></util:education-composite>

    </p:dialog>

</form>

Но это означает, что при загрузке страницы все компоненты будут вызываться и инициализироваться. Я не хочу этого, поскольку система будет тяжелой при загрузке страницы. Я хочу, чтобы он вызывал композит, основанный на необходимости, и только инициализировал и отображал его тогда, как ui: include. Как мне сделать это с использованием составных компонентов и возможно ли это? Если нет, есть ли другие решения?

...