当前位置: 代码迷 >> JavaScript >> 如何从JavaScript调用bean方法
  详细解决方案

如何从JavaScript调用bean方法

热度:89   发布时间:2023-06-05 11:47:55.0

我有一个xhtml页面,其中已使用Primefaces实现了tabView。

 <p:tabView id="editorTab" styleClass="mySubPanelStyleNew" dynamic="true" cache="false" activeIndex="#{certInquiry.defaultIndex}" onTabChange="savetab()" effectDuration="0" tabChangeListener="#{certInquiry.onTabChange}"../> 

从tabView我调用Javascript函数。 我想从此javascript函数调用Backing bean方法。

上面代码中的savetab()在我的.js文件中定义。

 function saveTab() { removeSpellcheckwindow(); var b = jQuery("#certEditorForm1\\\\:changeTag").val(); var a = jQuery("#certEditorForm1\\\\:wordchangeTag").val(); if (b == "true" || a == "true") { jQuery("#certDetailsEditorForm\\\\:certDetailSubmit").click(); jQuery("#certEditorForm3\\\\:dummySave").click() } } 

在条件“ if(b ==” true“ || a ==” true“)”之前的saveTab()中,我想在我的Handler类之一中调用一个方法,然后继续执行if条件。

我尝试了以下方法,但未能实现我的功能。 我在xhtml文件中创建了一个隐藏文件,并将bean方法称为侦听器。 然后在我的saveTab()中,创建了一个jquery以单击隐藏的commandButton。 它可以工作,但是基本的问题是,当bean方法执行时,我的saveTab()会继续执行,而不会等待我的bean方法完成。

谁能提出解决我问题的方法。

“ ..基本问题是,当bean方法执行时,我的saveTab()会继续执行,而不会等待bean方法完成。”

通常,您可以尝试如下操作:

<p:remoteCommand name="rc" actionListener="#{bean.method()}"
         oncomplete="saveTabPartTwo(xhr, status, args)" />

function saveTabPartOne(){
    //before bean method is called
   rc();
}
function saveTabPartTwo(xhr, status, args){
    // after bean method finished
}

“在条件“ if(b ==” true“ || a ==” true“)”之前的saveTab()中,我想在我的Handler类之一中调用一个方法,然后继续执行if条件。”

为此,您需要将变量从saveTabPartOne()传递到远程命令,然后再传递saveTabPartTwo()。

  相关解决方案