我有这种情况: -Eclipse火星 -Primefaces 6.2 -JSF 2.1 -ibm门户框架 -在websphere上运行
当我单击primefaces菜单项以打开新的xhtml时,我需要在同一网页上打开此新的xhtml,而又不丢失组件中存在的所有其他html。我只需要刷新即可。
这是我的项目:
我的主页(xhtml):
<h:body>
<div id="divMain" style="height:200px">
<ui:insert name="cabecalho">
<ui:include src="/_MF/jsf/MainMenu.xhtml"></ui:include>
</ui:insert>
<ui:insert name="conteudo">
</ui:insert>
</div>
</h:body>
MainMenu.xhtml:
<h:form id="myFormMainMenu">
<div id="mainMenu">
<p:megaMenu orientation="#{megaMenuView.orientation}" style="margin-top:20px" autoDisplay="true">
<p:submenu label="DI" icon="ui-icon-check">
<p:column>
<p:submenu label="OPTIONS">
<p:menuitem value="Listing" icon="ui-icon-document"
ajax="false" action="#{mainMenuMB.listar()}" />
</p:submenu>
</p:column>
</p:submenu>
</p:megaMenu>
</div>
</h:form>
menuitem listar()提出的另一种形式:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/_MF/jsf/MainPage.xhtml">
<ui:define name="conteudo">
<div id="divListar">
<h1>User settings.....</h1>
</div>
</ui:define>
</ui:composition>
</html>
答案 0 :(得分:0)
此问题的解决方案已通过以下两项解决:链接和注释:添加了update =“ content”并删除了标签ajax =“ false”
通过此链接可以正常工作:How to ajax-refresh dynamic include content by navigation menu? (JSF SPA) <f:ajax render=":content">
...
和
这一个:我添加了update ='content',并删除了ajax =“ false”
<p:menuitem value="Listing" icon="ui-icon-document"
action="#{mainMenuMB.setPage('Listar')}" update="content"/>