Java jsf<;h:数据表>;如何使用添加到数据库中的新值刷新或更新dataTable
我有一个jsf页面(page1.xhtml),其中表单中有一个“h:datatable”,使用hibernate定义并填充数据库中的值。这很好用Java jsf<;h:数据表>;如何使用添加到数据库中的新值刷新或更新dataTable,java,jsf,jsf-2,Java,Jsf,Jsf 2,我有一个jsf页面(page1.xhtml),其中表单中有一个“h:datatable”,使用hibernate定义并填充数据库中的值。这很好用 此外,我在同一页上放置了一个“h:commandButton”(创建)。单击该按钮将打开一个新的jsf页面(page2.xhtml)。在新页面上,我可以设置一些h:inputText元素的值,并可以使用“保存”按钮将它们保存到数据库中。这也很好,因为我可以在数据库表中看到新值 我的save方法的返回值是显示dataTable的jsf页面(page1.x
请问有人能帮忙吗?您有两种选择 第一种选择是切换到第1页的
@ViewScoped
bean,以便在最初请求页面时调用service.load()
。这样,在请求页面时,刷新的数据将立即从数据库中获取,因此数据将是最新的,并且对您来说是透明的
第二种选择是继续使用
@SessionScoped
bean。但是在第2页中,您需要使用@ManagedProperty
注入会话范围的bean,并通过调用sessionBean.getData(persistedElement)将数据库中已经持久化的条目添加到会话bean中保存的数据列表中代码>。这样,会话范围的bean将包含最新的值,这是您的责任。正如您所提到的,我使用@ViewScoped进行了尝试,效果非常好。非常感谢!