2012-07-02 26 views
0

我有两个primefaces(p:layoutUnit)小部件:我的页面左侧的layoutUnit中的一棵树,以及我的页面中央的layoutUnit中的dataArea(待决定)。我有树形菜单工作,所以当一个节点被选中时,相应的DAO方法被调用并且对象被返回。我的麻烦是,该对象是否返回到页面左侧的树形窗体。如何在同一个xhtml页面上通过两种形式共享一个变量?

我的问题是:如何获取返回的对象以填充到我的页面中心?有没有一个JSF机制来做到这一点?

回答

2

您可以利用<p:tree>组件的select事件发出Ajax调用,将更新页面的基于选择的节点上DATAAREA:

例如:

<p:tree value="#{treeBean.model}" dynamic="true"> 
    <p:ajax event="select" listener="#{treeBean.onNodeSelect}" update="form2:dataArea"/> 
    ... 
</p:tree> 

在onNodeSelect,您将在控制器上使用您想要在dataArea中显示的值填充一个实例变量。将update属性设置为“form2:dataArea”将导致页面将dataArea更新为最新状态(并获取已放置在实例变量中的数据)。请注意,“form2:dataArea”只是猜测你的第二个表单id和dataArea的id标记为什么。

+0

谢谢。你的建议是现货!有效的代码是更新=“:form2:dataArea” – Rick

+0

不客气。很高兴它对你有效。 – BestPractices

相关问题