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



我需要从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;");

相关内容

  • 没有找到相关文章

最新更新