Jsf 2 JSF2通过ajax动态加载页面
我想在JSF2.0中单击菜单链接时将页面加载到中心div中。我设置了一个panelmenu并编写了一个这样的菜单项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
<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"/>