问题描述
我有一个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方法完成。
谁能提出解决我问题的方法。
1楼
sinclair
0
2015-07-31 11:47:38
“ ..基本问题是,当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()。