gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:48:07 25 4
gpt4 key购买 nike

我需要从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com