Primefaces对话框架可以从外部域显示xhtml吗?

时间:2014-01-28 10:25:19

标签: jsf jsf-2 primefaces dialog

当我读到关于Primefaces对话框架(DF),“用于在对话框中打开外部xhtml页面”时,我认为这意味着你可以从另一个域显示xhtml。

如果是这种情况,我该如何给该方法提供绝对网址... requestContext.getCurrentInstance().openDialog(outcome)

这些似乎无法解决。

如果不是这样,那么DF的目的/优势是什么?如果我只能在同一个应用程序中显示xhtml,为什么不只使用声明性<p:dialog>组件?例如,如果你想重用多个页面中的对话框,它可以放在<ui:composition>内。

1 个答案:

答案 0 :(得分:1)

  

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标记,您只能使用内部条件渲染的单个对话框,具体取决于您要显示的内容。

根据你想渲染的内容,能够改变对话框属性的机会似乎也很有趣。

另见: