当我阅读有关PrimeFaces对话框框架(DF)时,它是"用于打开对话框中的外部XHTML页面"的" ",我认为这意味着您可以从另一个域显示XHTML。
如果是这种情况,我该如何给该方法提供绝对的URL ... requestContext.getCurrentInstance().openDialog(outcome)
?
这些似乎无法解决。
如果不是这种情况,那么DF的目的/优势是什么?如果我只能从同一应用中显示XHTML,为什么不使用声明的<p:dialog>
组件?如果要重复使用多个页面的对话框,则可以将其放入<ui:composition>
中。
opendialog使页面作者能够通过对话框中的JSF导航结果打开一个XHTML,选项是对话框的配置属性,例如模态,可拖动,最终可选参数是将参数传递到对话框的视图参数。
实际上,PrimeFaces博客条目参考了该内容,即使用内部应用程序查看结果以供对话框。这将通往您应用程序JSF导航案例的路径界定。
那么对话框框架的优势是什么?我会说,使您能够在运行时指定结果和对话框属性。假设您有一个汽车桌,当用户单击一行时,您可以打开一个详细的对话框。向对话中的对话框中的内容很容易显示您需要显示不同的内容,这很容易:
:String outcome = "dialogs/genericCar";
if (car.getBranch.equals("Ferrari")){
outcome = "dialogs/ferrariCar";
}
else if (car.getBranch.equals("Aston Martin")){
outcome = "dialogs/astonCar";
}
RequestContext.getCurrentInstance().openDialog(outcome);
这样做是如此清洁。否则,使用类p:dialog
标签,您将仅限于单个对话框,其中有条件渲染,具体取决于您要显示的内容。
能够根据您想要渲染的内容更改对话框属性的机会似乎也很有趣。
另请参阅:
- PrimeFaces对话框框架
- 博客条目