【问题标题】:Can Primefaces dialog framework display xhtml from an external domain?Primefaces 对话框框架可以显示来自外部域的 xhtml 吗?
【发布时间】:2014-02-19 14:17:07
【问题描述】:

当我了解 Primefaces 对话框框架 (DF),它“用于在对话框中打开外部 xhtml 页面”时,我认为这意味着您可以显示来自另一个域的 xhtml。

如果是这种情况,我怎样才能给方法一个绝对的 url... requestContext.getCurrentInstance().openDialog(outcome)?

这些似乎没有解决。

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

【问题讨论】:

    标签: jsf jsf-2 primefaces dialog


    【解决方案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 分类标签,您将被限制为一个带有条件渲染的对话框,具体取决于您要显示的内容。

    能够根据您要呈现的内容更改对话框属性的机会似乎也很有趣。

    另请参阅:

    【讨论】:

    • 啊,好吧,所以过去我通过在 ui:compositions 中创建单独的对话框来做到这一点。然后,您可以使用 widgetVar 打开您喜欢的任何一个。在 bean 中,您可以使用 RequestContext.getCurrentInstance().execute("myDialog.show()") 之类的东西。但这需要所有的可能性都已经用 ui:includes 呈现在页面中。我可以看到这种方法确实更简单、更干净。非常感谢
    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2017-01-24
    相关资源
    最近更新 更多