У меня есть следующий файл шаблона templateBase.xhtml:
<!--Normal SPA Layout-->
<c:if test="#{not MainActionBean.isLayoutTheme(param.theme)}">
<ui:insert name="pageHeader" />
<ui:insert name="content"/>
<ui:insert name="contentFooter"/>
</c:if>
<!--3 panel layout-->
<c:if test="#{MainActionBean.isLayoutTheme(param.theme)}">
<p:outputPanel id="templateBaseLayoutPanel" >
<p:layout widgetVar="panelLayout">
<p:layoutUnit position="west" id="westContentContainer">
<h:outputText value="Document List" />
<ui:include src="/common/Documents.xhtml" />
<br/>
<h:outputText value="Action formulary" />
<ui:insert name="actionSection"/>
</p:layoutUnit>
<p:layoutUnit position="center" id="centerContentContainer">
<ui:insert name="pageHeader" />
<ui:insert name="content"/>
<ui:insert name="contentFooter"/>
</p:layoutUnit>
<p:layoutUnit position="east" id="eastContentContainer">
East Panel Content
</p:layoutUnit>
</p:layout>
</p:outputPanel>
</c:if>
Чего я хочу добиться, так это изменить текущую схему SPA на 3 с другими столбцами, когда к параметру с определенным значением добавляетсяURL. В макете SPA «список документов» и «формуляр действия» включены в подпредставление в разделе «содержимое» шаблона, а в макете 3 панели они должны быть перемещены на западную панель. В настоящее время после добавления параметра отображаются элементы макета, но не пользовательские элементы ui: insert и ui: include западной панели. В журналах и на консоли нет ошибок, и воспроизведение компонентов контролируется методом «MainActionBean.isLayoutTheme (param.theme)», чтобы предотвратить дублирование идентификатора.
Я хотел бы знать, возможно ли то, что я пытаюсь сделать, или есть лучший подход для этого.
PS: я попытался обобщить и упростить структуру xhtml. как можно больше, при необходимости выложу все это.