JSF 2.0 f:setPropertyActionListener

时间:2011-03-26 09:01:16

标签: jsf-2 primefaces

我想在我的commandLink中嵌套多个setPropertyActionListener,但只有一个有效。你是怎么做到的?此命令链接设置属性,然后打开一个对话框,以便它基本上初始化对话框。

这是如何完成的?

<p:commandLink update=":dreamWebSearchFrm" value="#{bundle['dreamModify.search.link.TEXT']}" oncomplete="webSearchDlg.show()">
    <f:setPropertyActionListener value="false" target="#{dreamSearchBean.shouldRender}"/>
    <f:setPropertyActionListener value="true" target="#{dreamSearchBean.shouldRender1}"/>
</p:commandLink>

3 个答案:

答案 0 :(得分:7)

您可以使用EL参数并在bean上调用单个方法。从该方法,更新您想要的任何内容。

e.g。

#{dreamSearchBean.shouldRenderInit(false, true)}

在你的bean中:

public void shouldRenderInit(boolean one, boolean two) {
    setShouldRender(one);
    setShouldRender1(two);
}

答案 1 :(得分:0)

我尝试

<p:commandLink update=":dreamWebSearchFrm" value="#{bundle['dreamModify.search.link.TEXT']}" oncomplete="webSearchDlg.show()">
   <f:setPropertyActionListener value="#{false}" target="#{dreamSearchBean.shouldRender}"/>
   <f:setPropertyActionListener value="#{true}" target="#{dreamSearchBean.shouldRender1}"/>
</p:commandLink>

使用JSF 1.2和richfaces是正确的。

答案 2 :(得分:-1)

我使用以下命令设置属性值

<f:setPropertyActionListener
        target="#{facRwMappingListBean.facRwMapping.finalActionCdDesc}"
    value="#{gridData.finalActionCdDesc}" />

我的工作正常。您的代码看起来正确,除了value =“true”部分。尝试以下列方式传递布尔值。

value=#{"true"}