Composite Component和setPropertyActionListener

时间:2012-12-27 12:10:40

标签: jsf-2 primefaces composite-component

我有一个有对话框的复合组件...... 在对话框中,我有以下代码:

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

因此,单击该按钮时,对话框消失,但未设置该属性。 没有错误,没有警告,没有!所以我根本不知道发生了什么......

如果您需要更多细节,请说出来! :)

*** EDIT

这是一个相关的问题,但不是我想要做的...... Pass Argument to a composite-component action attribute

我只需要使用propertyActionListener即可。 这里有一些额外的信息:

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

值:

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

bean里面的位置(acaoController) 我有一个实体...... 在实体内部,我有另一个对象,即“responsavel”。

1 个答案:

答案 0 :(得分:0)

在关闭对话框时,请尝试检查调用的setter和getter。 否则,您可以使用Flash传递组件之间的值。在命令按钮的动作方法中,

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

你可以像这样提取价值:

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