ui:include 包含远程页面时参数传递不起作用

ui:include parameter passing does not work when remote page is included

我有一个基本的 UI (index.html),分为页眉、页脚和内容。内容页面要么在与 index.html 相同的 (local.xhtml) 服务器上,要么在另一台 (remote.xhtml) 服务器上。 包含页面并使用 ajax 动态重新加载它们效果很好。但参数传递仅适用于本地内容页面。该参数是从名为 Login 的 Bean 中检索的,该 Bean 也与 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>

local.xhtml

<h:body>
 <ui:composition>
    <h:form id="form">

        <h:outputText value= "Local Page. Parameter is: #{userName}"/>

    </h:form>
 </ui:composition>
</h:body>

remote.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 打印出:"Local Page. Parameter is: MyUser"

remote.xhtml:"Remote Page. Parameter is: "

我正在使用 Glassfish4 作为 WebServer 和 JSF2

谢谢。评论中的提示解决了我的问题。现在这对我来说很好:

<iframe> 正在解决我的问题。在 URL 和 JSF 中传递的参数非常出色。

只是 "including" 使用 <iframe src="#{myBean.Url}"></iframe> 的远程页面并使用 JSF 函数 "#{param['param1']}"

读取参数

{myBean.Url} return 这种格式的字符串:localhost:8680/MyServiceservice/faces/myPage.html?param1=value1 其中 value1 是参数 I想转让