0

我有一个基本的 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>

本地.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 作为 WebServer 和 JSF2

4

1 回答 1

0

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

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

只需“包含”远程页面<iframe src="#{myBean.Url}"></iframe>并使用 JSF 函数读取参数"#{param['param1']}"

{myBean.Url} 以这种格式返回一个字符串: localhost:8680/MyServiceservice/faces/myPage.html?param1=value1 其中 value1 是我要传输的参数。

于 2018-02-08T07:17:03.517 回答