[英]JSF: calling javascript code from Managed Bean not working when forcing page reload
我需要从JSF Managed 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;");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.