Jsf 2 在primefaces中同时调用多个bean方法
我正在使用primefaces-4.0构建一个web应用程序。我想在单击命令按钮时同时调用两个bean方法。我使用远程命令尝试了它Jsf 2 在primefaces中同时调用多个bean方法,jsf-2,primefaces,Jsf 2,Primefaces,我正在使用primefaces-4.0构建一个web应用程序。我想在单击命令按钮时同时调用两个bean方法。我使用远程命令尝试了它 <p:commandButton value="Submit" ajax="false" actionListener="#{userBean.execute}" onclick="callCorrelation()">
<p:commandButton value="Submit" ajax="false"
actionListener="#{userBean.execute}"
onclick="callCorrelation()">
</p:commandButton>
<p:remoteCommand name="correlation" update="correlationDialog"
actionListener="#{userBean.correlation}" />
Java脚本函数:
<head>
<script type="text/javascript">
$(document).callCorrelation(function() {
correlation ();
});
</script>
</head>
$(文档).callCorrelation(函数(){
相关性();
});
但它没有起作用
有没有其他方法可以同时调用两个bean方法?您的具体问题是因为您通过
ajax=“false”
关闭了ajax。这将创建一个同步表单提交,从而不可能同时触发ajax请求。如果删除ajax=“false”
,那么它可能会工作,但是如果一个方法依赖于另一个方法的结果,那么仍然存在竞争条件。它没有定义哪一个将首先被执行
最好只使用一个命令组件。您可以同时使用action
和actionListener
。操作
用于业务操作。actionListener
用于准备业务操作。如果您需要更多操作侦听器,只需嵌套一个
或一个
另见:
action
属性设置一种方法,为actionListener
属性设置一种方法。谢谢你,巴卢斯。我尝试过删除ajax,但没有成功。我还尝试了您建议的单命令组件,但在这种方法中,它是先执行关联方法,然后执行方法……但我想同时执行两个方法,而不是一个接一个地执行……那么有没有其他方法可以同时执行两个方法呢?你到底为什么要这样做?你知道你需要两个线程吗?上面的答案只是在1终端用户交互中执行这两个方法。是的,完全正确。我需要并行运行的线程。但在实现线程之前,我正在寻找其他选项。如何在JSF中同时运行两个bean方法而不实现线程。实际上,问题是如果我将这两个方法加上边框并创建一个单击submit按钮后执行的单个bean方法。执行和加载xhtml页面需要花费太多时间。为了最小化此加载和执行时间,我将此单个方法转换为两种不同的方法。
<p:commandButton value="Submit"
actionListener="#{userBean.correlation}"
action="#{userBean.execute}"
update="correlationDialog" />