java - 从服务器端调用 javascript 方法

标签 java javascript jsf primefaces

我想从服务器端执行一个 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文档:

http://www.primefaces.org/docs/api/4.0/org/primefaces/context/RequestContext.html#execute(java.lang.String)

关于java - 从服务器端调用 javascript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26795915/

相关文章:

java - 如何使用 jGrowl 创建 JSF 消息

jsf - org.primefaces.component.chart.renderer.MeterGaugeRenderer.encodeData 中的 java.lang.NullPointerException

java - 井号在使用 java.mail 包的邮件内容中不起作用?

javascript - 阻止网站请求外部src

java - 是否有可能以及如何在 Spring 进行辅助注入(inject)?

javascript - 创建一个可访问的列表,其中每个 li 元素内部都有一些复杂的内容

javascript - 单击 Canvas 上绘制圆圈

jsf - 如何显示p :fileUpload invalidFileMessage in p:growl

java - playOrm - 调试/运行 - TestManyToOne.java 带断点 @ line79

Java DynamoDBMapper。映射属性值 'M'