2012-12-27 61 views
0

我有有一個對話框...... 對話,我有以下的代碼段裏面的複合組件:複合組件和setPropertyActionListener

    <p:commandButton id="selectButton" icon="ui-icon-check" oncomplete="lookupDialog.hide();" update=":#{cc.clientId}:#{cc.attrs.fieldId}_panelGrid"> 
         <f:setPropertyActionListener target="#{cc.attrs.targetValue}" value="#{entity}" />       
        </p:commandButton> 

所以,當單擊按鈕時,對話框消失,但該物業未定。 沒有錯誤,沒有警告,什麼都沒有!所以我根本就不知道發生了什麼...

如果您需要更多的細節,請說出來! :)

***編輯

這是一個相關的問題,但不是真的是我想做的事情...... Pass Argument to a composite-component action attribute

我需要的只是propertyActionListener工作。 這裏一些額外的信息:

<cc:attribute name="targetValue" required="true"/>  

值:

targetValue="#{acaoController.entity.responsavel}" 

凡豆(acaoController) 裏面我有一個實體...... 我有另一個對象的實體內部,即「responsavel」。

回答

0

嘗試在關閉對話框時檢查setsa和getsavel getters獲取調用。 否則,您可以使用Flash傳遞組件之間的值。在命令按鈕的操作方法,

Flash flash = FaceUtil.getFacesContext().getExternalContext().getFlash(); 
    flash.put("entity",entity); 

而且你可以提取這樣的值:

Flash flash = FaceUtil.getFacesContext().getExternalContext().getFlash(); 
    responsavel = (Responsavel) flash.get("entity"); 
+0

感謝您的答覆。我會嘗試,但這隻解決了我的一半問題(因爲它很大,所以沒有在這個問題上進行說明)。無論如何,當我完成測試時,我會提供反饋意見。只是留下一些信息,我認爲問題是我有一種形式在另一種形式。一個帶有輸入屏幕組件的表單(正常插入/編輯表單)...並且在我的組件中,我有更多的表單(兩個以上)。我會試着只留下一個表格,看看是否一切正常。 –

+0

我的建議,從來沒有一個窗體內的形式。 – shashdr

+0

我想刪除它,但我認爲現在不可能。我將把這部分項目置於待命狀態。沒時間改變它:( –