我想从服务器端执行一个 JavaScript 方法。
在我的情况下,当我更改选项卡时,在托管的 Bean 中,我想调用 JavaScript 方法。
有什么方法可以做到这一点吗?
我尝试使用 RequestContext。 但是,它直到监听器方法完成执行后才被调用。
RequestContext 在当前 ajax 请求完成后执行一个 javascript。 我想在 ajax 请求开始时执行 JavaScript 方法。
我想调用的 JavaScript 方法(在客户端编写)。
查看了 http://metoojava.wordpress.com/2010/06/20/execute-javascript-from-java/ 和 http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html 但是没有找到解决此问题的方法。
使用 jsf 2.1 和 primefaces 4.0。
我的代码如下:
我尝试使用 RequestContext。 但是,它直到监听器方法完成执行后才被调用。
RequestContext 在当前 ajax 请求完成后执行一个 javascript。 我想在 ajax 请求开始时执行 JavaScript 方法。
我想调用的 JavaScript 方法(在客户端编写)。
查看了 http://metoojava.wordpress.com/2010/06/20/execute-javascript-from-java/ 和 http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html 但是没有找到解决此问题的方法。
使用 jsf 2.1 和 primefaces 4.0。
我的代码如下:
<p:tabView id="detailsId" widgetVar="detailsVar" >
<p:ajax event="tabChange" listener="#{mywBean.onTabChange}"/>
<p:tab title="Service">
</p:tab>
<p:tab title="Books">
</p:tab>
</p:tabView>
<script>
function myJavascriptMethod() {
alert("Hello All..");
// Some functionality
}
</script>
管理的Bean
public void onTabChange(TabChangeEvent event) {
String tabId = event.getTab().getId();
if(tabId.equalsIgnoreCase("Books")) {
**need to call javascript method here**
//Some Functionality
}
}