如何在同一个 xhtml 页面上的两个表单之间共享变量



我有两个素数(p:layoutUnit)小部件:页面左侧布局单元中的树和页面中央布局单元中的dataArea(待定)。 我有树菜单工作,以便在选择节点时调用适当的 DAO 方法并返回对象。 我的问题是,对象返回到页面左侧的树窗体。

我的问题是:如何让返回的对象填充到页面中心? 是否有JSF机制来执行此操作?

您可以利用 <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被标记为什么的猜测。

最新更新