在JSF应用程序中使用对话框进行编辑-哪个组件?

在JSF应用程序中使用对话框进行编辑-哪个组件?,jsf,primefaces,Jsf,Primefaces,我正在考虑将编辑屏幕的工作流程更改为对话框 总的来说,我们有一个父实体,它有许多子实体。这些都在数据表组件中,每个组件旁边都有“编辑”按钮。单击其中一个会使托管bean将单个记录加载到一个“currentlyEditing”变量中,并返回null,使其保持在同一视图上,ajax会更新以前隐藏的表单区域,以显示所选记录,并预先填充以进行编辑。在新表单的底部是Save和Cancel按钮,它们可以实现您所期望的功能。子列表下方的单个按钮(“Add”)会将一个空白对象设置到“currentlyEditi

我正在考虑将编辑屏幕的工作流程更改为对话框

总的来说,我们有一个父实体,它有许多子实体。这些都在数据表组件中,每个组件旁边都有“编辑”按钮。单击其中一个会使托管bean将单个记录加载到一个“currentlyEditing”变量中,并返回null,使其保持在同一视图上,ajax会更新以前隐藏的表单区域,以显示所选记录,并预先填充以进行编辑。在新表单的底部是Save和Cancel按钮,它们可以实现您所期望的功能。子列表下方的单个按钮(“Add”)会将一个空白对象设置到“currentlyEditing”变量中,视图现在显示一个干净的表单。到目前为止,这都是相当标准的,对吗

我的业务用户要求我做的是改变编辑工作流程。他们希望单击按钮启动包含编辑表单和保存/取消按钮的对话框,而不是单击按钮,以及子项列表下方显示的先前隐藏区域。所有验证错误/消息应保留在对话框中。目前还不确定成功保存是否应自动关闭对话框,或者是否应看到成功消息,然后使用按钮关闭对话框。有些人建议同时使用“保存”和“保存并关闭”按钮


我们使用PrimeFACS 3.5(并且考虑移动到4.0快照,因为我们的Give是相当遥远的,我们不害怕同时从源建立)。我看到有一个当前的

,在我看来,你可以用p:dialog来实现这一点。我以前做过,但当时对话框框架并不存在。因为您将使用一个bean,所以将对话框中所做的更改应用于表将更容易。另外,由于它位于同一页面中,对话框将显示得更快(更好的用户体验)。
重新打开对话框时,需要一些javascript来清除验证消息,以防止显示上次编辑的错误。但是使用jQuery,这不会是一个问题