2

在 primefaces 中有 RequestContext 类,它添加了从服务器端调用 javascript 方法的能力:

RequestContext context = RequestContext.getCurrentInstance();          
        //execute javascript oncomplete  
        context.execute("PrimeFaces.info('Hello from the Backing Bean');"); 

我想知道是否可以在不使用 primefaces 的情况下使用 jsf 2 来实现这一点,请告知。

4

1 回答 1

3

最简单但也是最棘手的方法是设置一个表示 a 内容的属性,<h:outputScript>然后通过将其客户端 ID 添加到 ajax 更新它PartialViewContext#getRenderIds()

所以,给定一个

<h:panelGroup id="script"><h:outputScript>#{bean.script}</h:outputScript></h:panelGroup>

你可以用 ajax 更新它

script = "alert('peek-a-boo')";
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("script");
于 2013-07-17T23:46:14.123 回答