没有后台的JSF页面重新加载

时间:2014-12-17 00:00:36

标签: jsf primefaces

我必须制作一个有jsf和primafecas的网页,但我不需要经验丰富。我必须更改页面的内容而不重新加载所有内容(背景非常大)。 我制作了一个菜单(带工具栏)和一个iframe,可以轻松更改内容(gmap,文本,表单,数据表等)。我知道这是最糟糕的解决方案之一,但我无法找到更好的解决方案。

现在我必须从iframe更改菜单,但看起来不可能,所以我想使用一个不错的方法而不是iframe。我尝试了一些东西,但没有任何效果,有时我得到重复的ID错误或没有任何效果,但有时除了菜单之外没有任何渲染。

现在代码如下:

<ui:define name="menu">
        <h:form id="menuForm">
            <p:toolbar activeIndex="#{navigationBean.pageCount}">
                <p:toolbarGroup align="right">
                    <p:commandButton value="menu1" action="#{navigationBean.setUrl(...)}" update=":frmContent,menuForm" />
                    <p:commandButton  value="menu2" action="#{navigationBean.setUrl(...)}" update=":frmContent,menuForm" />
                    <p:commandButton  value="menu3" action="#{navigationBean.setUrl(...)}" update=":frmContent,menuForm" />
                    <p:commandButton  value="menu3"  action="#{navigationBean.setUrl(...)}" update=":frmContent,menuForm"/>
            </p:toolbar>

        </h:form>

</ui:define>

<ui:define name="content">

           <h:form id="frmContent" style="height:100%;width:100%" height="100%" width="100%">
                <iframe src="#{navigationBean.url}" id="frame" frameborder="0" style="height:100%;width:100%" height="100vh" width="100%"/>
       </h:form>

我需要一种可以在没有背景的情况下更改内容或整个页面的工作方法。

1 个答案:

答案 0 :(得分:0)

尝试使用

<ui:include src="#{navigationBean.url}" />

而不是iframe。