Jsf 2 JSF2通过ajax动态加载页面

Jsf 2 JSF2通过ajax动态加载页面,jsf-2,primefaces,Jsf 2,Primefaces,我想在JSF2.0中单击菜单链接时将页面加载到中心div中。我设置了一个panelmenu并编写了一个这样的菜单项 <p:menuitem > <h:commandButton value="Edit Details" action="#{formsBean.changeDisplay(1)}"> <f:ajax render=":editdiv"></f:ajax> </h:commandButton> </p:menui

我想在JSF2.0中单击菜单链接时将页面加载到中心div中。我设置了一个panelmenu并编写了一个这样的菜单项

<p:menuitem >
<h:commandButton value="Edit Details"  action="#{formsBean.changeDisplay(1)}">
 <f:ajax  render=":editdiv"></f:ajax>
</h:commandButton>
</p:menuitem>

要更新的组件是:

<h:panelGroup id="editdiv" rendered="#{formsBean.edituserdiv}" layout="block">
  <ui:include src="edituserdetails.xhtml">

 </ui:include>
 </h:panelGroup>

函数
formsBean.changeDisplay(1)
edituserdiv
设置为true,以显示相应的面板组

在包含的页面中,我定义了一个表单

在主页中,我还调用了一个pre-render函数,将所有div设置为false,以便在第一页加载时不显示div


问题是,当我单击菜单项时,包含的页面没有被包含。有指针吗?

问题是因为最初没有呈现
h:panelGroup
,因此AJAX请求无法在生成的代码中找到它,因此无法更新它。将其封装在另一个
h:panelGroup
中并呈现:

<h:panelGroup id="editdivParent" layout="block">
  <h:panelGroup id="editdiv" rendered="#{formsBean.edituserdiv}" layout="block">
    <ui:include src="edituserdetails.xhtml">

    </ui:include>
  </h:panelGroup>
</h:panelGroup>

谢谢成功了。我必须包括大约4页。因此,我将所有面板组放在一个封闭面板组中,并使用ajax渲染封闭面板组。渲染单个面板组会导致在显示新面板组时,已显示的面板组不会隐藏。谢谢。。
<f:ajax  render=":editdivParent"/>