我有一个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方法完成。
有人可以建议解决我的问题。
答案 0 :(得分:0)
&#34; ..基本问题是,当bean方法执行时,我的saveTab()继续执行,并且不会等待我的bean方法完成。&#34;
一般来说,你可以尝试这样的事情:
<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
}
&#34;在我的saveTab()之前的条件&#34; if(b ==&#34; true&#34; || a ==&#34; true&#34;)&#34; ,我想在我的一个Handler类中调用一个方法,然后用if条件恢复。&#34;
为此,您需要将变量从saveTabPartOne()传送到远程命令,然后传送到saveTabPartTwo()。