JSF和applicationcoped bean连接(发布/订阅)

时间:2013-08-31 12:07:25

标签: java jsf

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

1 个答案:

答案 0 :(得分:1)

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

但我认为你不希望用户按F5,而是另外一些解决方案。

最简单的是用一些像这样的ajax刷新表的按钮:

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

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

使用某些第三方库,您也可以自动执行此操作。使用RichFaces,您可以使用<a4j:push>。在PrimeFaces中,您可以使用PrimePush。两者都在内部使用Atmosphere框架。这些链接将向您展示如何使用它们自动列表已更改事件从服务器推送到客户端(浏览器)。