javascript - JSF:强制页面重新加载时,从托管 Bean 调用 javascript 代码不起作用

标签 javascript jquery jsf jsf-2 primefaces

我需要从 JSF 托管 Bean 的方法执行 JavaScript 代码,该方法基本上是单击 Facelet(.xhtml 文件)上的按钮。所有这些都可以通过使用 PrimeFaces 的 RequestContext.execute("{js here}") 完美运行,但是当使用 ExternalContext 添加一些“页面重新加载”代码行时,它不再起作用... (请参阅下面的代码)。看起来“页面重新加载”行阻止了 JavaScript 代码的执行。欢迎任何提示!

public void myMethod() throws IllegalStateException, Exception {

    RequestContext rc = RequestContext.getCurrentInstance();.           

    rc.execute("$('#myButton').click();");

    try {
        ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
        ec.redirect(((HttpServletRequest) ec.getRequest()).getRequestURI());

    } catch (IOException e) {
        log.error("Error", e);
    }

最佳答案

RequestContext 用于当前请求,重定向是另一个请求。这是行不通的。

尝试做这样的事情:

RequestContext rc = RequestContext.getCurrentInstance();
rc.execute("$('#myButton').click(); window.location = newURL;");

关于javascript - JSF:强制页面重新加载时,从托管 Bean 调用 javascript 代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30956014/

相关文章:

javascript - Nodejs,客户端并不总是收到服务器消息

javascript - 等到功能完成

javascript - 使用 javascript 或 jQuery 更新文本字段显示

javascript - 如何在文本区域显示来自服务器的数据

java.io.NotSerializedException : org. apache.catalina.session.StandardSessionFacade

java - h : c: f: and ui: denote in JSF tag library? 到底是做什么的

javascript - 无法写入 "css"文件(错误代码 : EISDIR) Grunt cssmin

javascript - 重叠修复导航与 jQuery 验证输入错误

java - 带有 facelets (jsf) 和 xhtml 的 Eclipse 自动完成(内容辅助)

javascript - Kendo UI 网格, Uncaught Error : Invalid Template