8

我在 bean 中使用 schedule(Timer),它在员工注册时更新变量,从指纹设备获取数据。当 bean 中的变量更新时,我需要从支持 bean 更新 jsf 中的组件。我尝试使用 primefaces 轮询组件,但它每次都会更新组件。

4

4 回答 4

17

假设您将使用指纹设备 API 中的 Listener 调用 Java 方法,并且从 ManagedBean 中您可以使用 RequestContext 更新任何 Primefaces组件

RequestContext.getCurrentInstance().update("ID_OF_YOUR_DATATABLE")
于 2013-10-03T13:52:04.767 回答
2

如您所见, Primefaces中已经有一个组件: here

RequestContext 是一个具有各种方便实用程序的功能。

以编程方式更新组件。从 bean 执行 javascript。添加ajax回调参数。ajax 更新后滚动到特定组件。

看看这里的例子。

于 2013-10-03T14:56:23.863 回答
1

我用 primefaces push 组件解决了我的问题。

java代码是:

 PushContext pushContext = PushContextFactory.getDefault().getPushContext();
  pushContext.push("/finger", "Pressed"); 

在jsf中:

<p:socket channel="/finger" onMessage="clearCookies" /> 

“clearCookies”是更新我的数据表的 remoteCommand 函数。

于 2013-10-04T10:01:57.480 回答
0

它已从 primefaces 7.0 更改

PrimeFaces.current().ajax().update("elementJS");

于 2020-02-10T10:51:21.367 回答