java-jsf如何使用添加到数据库的新值刷新或更新dataTable
作者:互联网
>我有一个jsf页面(page1.xhtml),其中在表单内定义了“ h:datatable”,并使用休眠方式填充了数据库中的值.这很好.
>另外,我在同一页面上放置了一个“ h:commandButton”(创建).通过单击按钮,将打开一个新的jsf页面(page2.xhtml).在新页面上,我可以将值设置为某些h:inputText元素,并可以使用“保存”按钮将其保存到数据库.这也可以正常工作,因为我可以在数据库表中看到新值.
>我的save方法的返回值是显示dataTable的jsf页面的名称(page1.xhtml).
>现在的问题是,如何更新或刷新dataTable以在现有值旁边显示新值?我是否必须再次从数据库读取它们?
>我的ManagedBean是SessionScoped,并且我正在使用JSF 2.2
我检查了此http://balusc.blogspot.de/2006/06/using-datatables.html,但找不到相应的信息.
请,有人可以协助吗?
解决方法:
您有两种选择.
第一种选择是切换到页面1的@ViewScoped bean,以便在最初请求该页面时调用service.load().这样,刷新的数据将在请求页面后立即从数据库中获取,因此数据将是最新的,并且对您透明地进行.
第二种选择是继续使用@SessionScoped bean.但是在第2页中,您需要使用@ManagedProperty注入该会话作用域的bean,并通过调用sessionBean.getData(persistedElement);将数据库中已经存在的条目添加到会话bean中保存的数据列表中.这样,您的会话范围的bean将包含最新的值,这是您的责任.
标签:jsf,jsf-2,java 来源: https://codeday.me/bug/20191122/2059680.html