我想从服务器端执行一个 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。
我的代码是
XHTML
<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
}
}
最佳答案
你可以试试:
String js="alert('Hello World!!')"; // write your javascript
RequestContext.getCurrentInstance().execute(js);
Java文档:
关于java - 从服务器端调用 javascript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26795915/