我正在尝试将值传递给rich:popupPanel with rich:hashParam tag,这是我的代码
<h:commandLink value="Edit">
<rich:componentControl target="editPanel" operation="show">
<a4j:param noEscape="true" value="event" />
<rich:hashParam>
<a4j:param name="categoryId" value="#{ c.categoryId }" />
<a4j:param name="categoryName" value="#{ c.name }" />
<a4j:param name="categoryParent" value="#{ c.parent }" />
</rich:hashParam>
</rich:componentControl>
这是我的弹出式面板,用户可以做某事
<rich:popupPanel id="editPanel" autosized="true">
<!-- how to get value of the rich:hashParam? -->
</rich:popupPanel>
我已经参考了richfaces文档和有关rich:hashParam的示例,以了解如何在rich:popupPanel中获取值。但似乎文档中包含的内容很少:hashParam,示例是硬编码的,不是由rich:hashParam传递的。
文件:Here
示例:Here
有人对此有所了解吗?提前谢谢。
答案 0 :(得分:1)
嗯,我自己解决了这个问题。我没有使用rich:hashParam
传递参数,而是使用a4j:param
将参数传递给弹出面板,并将值分配给支持bean属性。然后重新渲染显示参数值的a4j:outputPanel
。
<h:form id="editDataForm">
<!-- server do something with the 'categoryId' parameter it gets -->
<a4j:commandLink action="#{ testBackingBean.editData }" value="Edit" render="dataContent" oncomplete="#{rich:component('editPanel')}.show()">
<a4j:param name="data" value="#{ c.categoryId }" assignTo="#{ testBackingBean.categoryId }"/>
</a4j:commandLink>
</h:form>
<!--...-->
<rich:popupPanel id="editPanel">
<a4j:outputPanel id="dataContent" layout="inline">
<h:outputText value="ID:"/>
<h:outputText value="#{ testBackingBean.dataToEdit.categoryId }"/>
</a4j:outputPanel>
</rich:popupPanel>