在不同 window/tab 中更新组件而无需手动刷新它
Update component in a different window/tab without manually refreshing it
我有不同布局的不同页面,例如 index.xhtml 和 user.xhtml,每个页面都有自己的模板。如果我在 user.xhtml 中进行更改,我想更新 index.xhtml 中的数据表。
index.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/template.xhtml">
<ui:define name="body">
<h:form id="indexFormId">
<p:dataTable id="datalist" value="#{userController.items}"var="item" widgetVar="userWidget">
-----datatable columns and rows with user data------
</p:datatable>
</h:form>
user.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/templateB.xhtml">
<ui:define name="body">
<h:form>
<p:commandButton value="Modify User" actionListner="some action" update=":thisForm, :indexFormId"/>
</h:form>
因此,当我关闭 user.xhtml 时,我看到 index.xhtml 数据表已更新,无需手动刷新。可能吗 ?有什么办法可以做到这一点?我看到有一种方法可以使用 .
使用相同的模板来做到这一点
请参阅以下选项的 PrimeFaces User Guide。
p:poll
组件(定期服务器轮询)。
- PrimeFaces Push(一种基于 Atmosphere 框架的更通用的解决方案)。
我有不同布局的不同页面,例如 index.xhtml 和 user.xhtml,每个页面都有自己的模板。如果我在 user.xhtml 中进行更改,我想更新 index.xhtml 中的数据表。
index.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/template.xhtml">
<ui:define name="body">
<h:form id="indexFormId">
<p:dataTable id="datalist" value="#{userController.items}"var="item" widgetVar="userWidget">
-----datatable columns and rows with user data------
</p:datatable>
</h:form>
user.xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/templateB.xhtml">
<ui:define name="body">
<h:form>
<p:commandButton value="Modify User" actionListner="some action" update=":thisForm, :indexFormId"/>
</h:form>
因此,当我关闭 user.xhtml 时,我看到 index.xhtml 数据表已更新,无需手动刷新。可能吗 ?有什么办法可以做到这一点?我看到有一种方法可以使用 .
使用相同的模板来做到这一点请参阅以下选项的 PrimeFaces User Guide。
p:poll
组件(定期服务器轮询)。- PrimeFaces Push(一种基于 Atmosphere 框架的更通用的解决方案)。