0

ダイアログを持つ複合コンポーネントがあります...ダイアログ内には、次のコードがあります。

                    <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>

そのため、ボタンをクリックすると、ダイアログは消えますが、プロパティは設定されません。エラーも警告も何もありません。だから、何が起きているのかさっぱりわからない…

さらに詳細が必要な場合は、そう言ってください!:)

***編集

これは関連する質問ですが、実際にやりたいことではありません... 引数を複合コンポーネントのアクション属性に渡す

propertyActionListener が機能する必要があります。ここにいくつかの追加情報があります:

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

値:

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

Bean (acaoController) の内側にはエンティティがあります...そしてエンティティの内側には別のオブジェクト、つまり「responsavel」があります。

4

1 に答える 1

0

ダイアログ ボックスを閉じたときに、responsavel のセッターとゲッターが呼び出されることを確認してください。それ以外の場合は、Flash を使用してコンポーネント間で値を渡すことができます。コマンドボタンのアクションメソッドでは、

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

そして、次のように値を抽出できます。

    Flash flash = FaceUtil.getFacesContext().getExternalContext().getFlash();
    responsavel = (Responsavel) flash.get("entity");
于 2013-01-03T20:46:28.123 に答える