У меня есть базовый пользовательский интерфейс (index.html), который разделен на заголовок, нижний колонтитул и контент. Страница содержимого находится либо на том же (local.xhtml) сервере, что и index.html, либо на другом (remote.xhtml) сервере. Включение страниц и их динамическая перезагрузка с помощью ajax работает довольно хорошо. Но передача параметров работает только на странице локального контента. Параметр извлекается из Bean-компонента с именем Login, который также находится на том же сервере, что и index.html.
index.xhtml (отрывок):
<h:panelGroup id="content" layout="block">
<ui:include src="#{contentLoader.page}" >
<ui:param name="userName" value="#{login.userName}" />
</ui:include>
</h:panelGroup>
<h:form>
<f:ajax render=":content">
<ul>
<li><h:commandLink value="include1"
action="#{contentLoader.LocalPage}" /></li>
<li><h:commandLink value="include2"
action="#{contentLoader.remotePage}" /></li>
</ul>
</f:ajax>
</h:form>
локальный.xhtml
<h:body>
<ui:composition>
<h:form id="form">
<h:outputText value= "Local Page. Parameter is: #{userName}"/>
</h:form>
</ui:composition>
</h:body>
удаленный.xhtml
<h:body>
<ui:composition>
<h:form id="form">
<h:outputText value= "Remote Page. Parameter is: #{userName}"/>
</h:form>
</ui:composition>
</h:body>
local.xhtml выводит: "Локальная страница. Параметр: MyUser"
Только remote.xhtml: "Удаленная страница. Параметр: "
Я использую Glassfish4 в качестве веб-сервера и JSF2.