Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf Primefaces对话框框架能否从外部域显示xhtml?_Jsf_Jsf 2_Primefaces_Dialog - Fatal编程技术网

Jsf Primefaces对话框框架能否从外部域显示xhtml?

Jsf Primefaces对话框框架能否从外部域显示xhtml?,jsf,jsf-2,primefaces,dialog,Jsf,Jsf 2,Primefaces,Dialog,当我读到Primefaces对话框框架(DF)“用于在对话框中打开外部xhtml页面”时,我认为这意味着您可以从另一个域显示xhtml 如果是这样的话,我怎么能给这个方法一个绝对的url。。。 requestContext.getCurrentInstance().openDialog(结果) 这些问题似乎没有解决 如果不是这样,那么DF的目的/优势是什么?如果我只能在同一个应用程序中显示xhtml,为什么不使用声明性的组件呢?例如,如果您想重用来自多个页面的对话框,可以将其放在中 OpenDi

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

如果是这样的话,我怎么能给这个方法一个绝对的url。。。
requestContext.getCurrentInstance().openDialog(结果)

这些问题似乎没有解决

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

OpenDialog使页面作者能够在对话框中打开通过JSF导航结果引用的xhtml,选项是对话框的配置属性,如modal、DRAGABLE,最后可选的参数是视图参数,用于将参数传递给对话框

实际上,PrimeFaces博客条目引用了这一点,这意味着使用内部应用程序视图结果来引用对话框。这将限制应用程序JSF导航案例的路径

那么对话框架的优势是什么?我想说的是,它使您能够在运行时指定结果和对话框属性。假设您有一个car表,当用户单击一行时,您会在其中打开一个详细信息对话框。如果您需要根据car的分支显示不同的内容,则可以很容易地控制对话框中要呈现的内容:

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);
这样做将是一件非常简单的事情。否则,使用classing
p:dialog
标记,根据要显示的内容,您只能使用一个对话框,其中包含条件渲染

根据要渲染的内容更改对话框属性的可能性似乎也很有趣

另请参见:


Ahh好的,过去我是通过在ui:compositions中创建单独的对话框来实现的。然后,您可以使用widgetVar打开任意一个。在bean中,您可以使用类似RequestContext.getCurrentInstance().execute(“myDialog.show()”)的内容。但这要求所有可能的内容都已在ui:includes页面中呈现。我可以看出这种方法是多么的简单和干净。非常感谢