1

我想创建一个简单的 Web 应用程序,它的工作方式与发布/订阅机制类似。我有 applicationScoped bean,其中包含字符串列表和 xhtml,我将这些字符串显示为表格。现在我想添加类似监听器的东西,当 applicationScoped bean 中的字符串列表会改变我的表时,我的表也应该改变。我怎样才能做到这一点?

4

1 回答 1

1

实际上表格会自动改变。如果您在包含表格的页面上按 F5,您会注意到现在将呈现新条目。在 JSF 的渲染阶段,它将再次处理value表属性后面的数据。

但我假设您不希望用户按 F5,而是按其他解决方案。

最简单的方法是使用如下 ajax 刷新表格的按钮:

<h:commandButton value="Refresh" immediate="true">
    <f:ajax render="tableComponent" />
</h:commandButton>

这是一种笨拙的方法,但它表明需要做的就是重新渲染表格。

使用一些 3rd 方库,您也可以自动执行此操作。使用 RichFaces,您可以使用<a4j:push>. 在 PrimeFaces 中,您可以使用PrimePush. 两者都在内部使用 Atmosphere 框架。这些链接将向您展示如何使用它们自动list-has-changed-event 从服务器推送到客户端(浏览器)。

于 2013-08-31T14:05:38.753 回答