同时在primefaces中调用多个bean方法

时间:2013-09-17 12:48:25

标签: jsf-2 primefaces

我正在使用primefaces-4.0构建一个Web应用程序。我想在点击命令按钮的同时调用两个bean方法。我尝试使用 remoteCommand

<p:commandButton value="Submit" ajax="false"
                        actionListener="#{userBean.execute}"
                        onclick="callCorrelation()">
                    </p:commandButton>
                    <p:remoteCommand name="correlation" update="correlationDialog"
                        actionListener="#{userBean.correlation}" />

Java Script函数:

<head>
<script type="text/javascript">
    $(document).callCorrelation(function() {
        correlation ();
    });           
</script>
</head>

但它不起作用。

还有其他方法可以同时调用两个bean方法吗?

1 个答案:

答案 0 :(得分:5)

您的具体问题是因为您已ajax="false"关闭了ajax。这将创建一个同步表单提交,这使得无法触发ajax请求。如果您删除ajax="false",那么它可能会起作用,但如果一种方法取决于另一种方法的结果,那么您仍然处于竞争状态。它没有定义首先执行哪一个。

最好只使用一个命令组件。您可以一起使用actionactionListeneraction用于商业行为。 actionListener旨在准备商业行为。如果您需要更多动作侦听器,只需嵌套<f:actionListener><f:setPropertyActionListener>

<p:commandButton value="Submit"
    actionListener="#{userBean.correlation}"
    action="#{userBean.execute}"
    update="correlationDialog" />

另见: