通过AJAX更新JSF 2 DataTable



目前我有一个这样的工作流程:

  1. 用户在文本区域中输入手机号码列表
  2. 用户选择提交表单的选项(非AJAX)
  3. 系统处理ID,在一个新页面中向用户显示带有所有手机号码的JSF2DataTable
  4. 系统继续按顺序(每次一个号码)检索每个手机号码的信息,并将其更新到DataTable中

目前,我不确定在步骤3显示DataTable之后,我应该做什么来实现步骤4。

请建议我或将我链接到您遇到的任何与我的要求类似的教程。

有几个选项可以执行4。一个独特的选择是让客户端发起更新还是让服务器这样做。

在第一种情况下,您将看到传统的AJAX,您可以使用AJAX轮询组件。PrimeFaces和RichFaces都有这样一个组件(分别为p:poll和a4j:poll)

默认情况下,AJAX请求是通过单个队列序列化的,因此"一次一个数字"的要求将自动得到满足。由于您只想轮询一次,因此应在收到结果后立即停止轮询。

另一种选择是让服务器将数据推送到客户端(有时称为反向AJAX)。在您的情况下,当带有手机号码的初始表的数据被提取时,您将立即异步查询所有额外的信息。一旦服务器检索到这些信息,就会将其发送到客户端的数据表中。您可以一个接一个地再次执行此操作,或者如果是一个查询,则一次更新整个表可能更高效。

对于push,PrimeFaces和RichFaces都有可用的组件(p:push与a4j:push)。

参见:

  • http://www.primefaces.org/showcase/ui/ajaxPollHome.jsf
  • http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=poll

最新更新