![](/img/trans.png)
[英]How would I call a JavaScript function from a JSF Bean using RichFaces?
[英]How would I call a JavaScript function from a JSF Bean?
我需要从Java代码中执行此操作,但是我尝试了以下操作,但被卡住了:
UIOutput js = new UIOutput();
js.setRendererType("javax.faces.resource.Script");
js.getAttributes().put("library", "js");
js.setValue("alert(123);");
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().addComponentResource(context, js, "body");
服务器日志中没有出现此错误,但是也没有看到警报。
任何想法?
编辑:我尝试了建议的解决方案,所谓的重复项,我也没有收到服务器错误,但是我也没有看到任何警报。
我假设您想从JSF ManagedBean而不是JSF组件执行此操作。
我不确定对此是否有“普通的” jsf解决方案(意味着不添加其他框架或创建和维护一些特定的Java代码)。
至少有2种解决方案(我曾使用过的解决方案):
Ajax.onComplete("alert('Hi'')")
实用程序框架中的 Ajax.onComplete("alert('Hi'')")
我确信所有其他组件套件(RichFaces,IceFaces,OpenFaces等)也有类似的解决方案。
如果您想继续使用普通的JSF,我将继续使用OmniFaces。 通常,这是一个很好的补充,它会阻止您维护有关实现细节的知识。
编辑:我刚刚找到一个简单的jsf解决方案
请尝试以下方法:
JavaScriptRunner.runScript(FacesContext.getCurrentInstance(), "alert(hello)");
我不知道我的版本。 但是我尝试了以下方法,它可以在我的环境中工作
FacesContext.getCurrentInstance().getResponseWriter().write("<script>alter('hello');</script>");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.