2012-08-26 118 views
0

我試圖值傳遞給富有hashParam:popupPanel具有豐富:hashParam標籤,這裏是我的代碼如何獲得豐富的參數值:

<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的文檔和例子是富翁:hashParam找出如何內致富值:popupPanel。但似乎該文檔包含一些關於rich:hashParam,並且該示例是硬編碼的,而不是由rich:hashParam傳遞。

文件:Here

例子:Here

有沒有人有這樣的想法?提前致謝。

回答

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>