我正在使用p:dataList
,因为我正在开发一个显示项目列表的 PrimeFaces 移动视图。单击任何项目时,pm:view
应显示另一个相同的视图。但应通知 bean 所选项目。
不幸的是,我找不到成功更新 bean 的方法:<p:ajax>
在 dataTable 内部抛出此异常:
<p:ajax> Unable to attach <p:ajax> to non-ClientBehaviorHolder parent
在迭代元素内部使用<f:setPropertyActionListener>
也失败了,因为我得到:
<f:setPropertyActionListener> Parent is not of type ActionSource
这是我的代码:
<pm:view id="instrumentsView" >
<pm:content >
<h:form id="instrumentsList" >
<p:dataList var="instrument" value="#{instrumentBean.subscribedInstruments}" >
<h:outputLink value="#newView" >#{instrument.longName}</h:outputLink>
<f:setPropertyActionListener value="#{instrument}" target="#{instrumentBean.selectedInstrument}" />
</p:dataList>
</h:form>
</pm:content>
</pm:view>
显然,我使用的是 dataList 和 outputLink,因为据我了解,它们是针对 PrimeFaces 移动列表中使用而优化的组件。但如有必要,我可以找到其他选择。