Jsf 类型RequestContext的方法openDialog(String)未定义

Jsf 类型RequestContext的方法openDialog(String)未定义,jsf,primefaces,dialog,requestcontext,Jsf,Primefaces,Dialog,Requestcontext,我想以编程方式打开 我尝试了以下代码: 但是,它导致了一个编译错误: 类型RequestContext的方法openDialog(String)未定义 我寻找了一种用JavaScript实现的方法,但不清楚如何用JavaScript实现。如何在按下按钮时打开?PrimeFaces showcase当前运行PrimeFaces 4.0。请仔细查看站点页脚中的版本信息。RequestContext#openDialog()是在PrimeFaces 4.0中引入的,并且确实是。因此,此编译错误表明您使

我想以编程方式打开

我尝试了以下代码:

但是,它导致了一个编译错误:

类型RequestContext的方法openDialog(String)未定义


我寻找了一种用JavaScript实现的方法,但不清楚如何用JavaScript实现。如何在按下按钮时打开

PrimeFaces showcase当前运行PrimeFaces 4.0。请仔细查看站点页脚中的版本信息。
RequestContext#openDialog()
是在PrimeFaces 4.0中引入的,并且确实是。因此,此编译错误表明您使用的是旧版本,如3.5。在该版本中,您应该调用JavaScript变量上的
show()
函数,引用可以通过
widgetVar
属性指定的对话框

例如,纯粹在观点上:

<h:form>
    <p:commandButton ... oncomplete="dialogWidget.show()" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
    ...
</p:dialog>


你看过showcase页面吗?因为你的问题是一个基本问题,所以你有没有检查过任何东西?最好从一本关于JSF和/或PrimeFaces的基本书籍开始。祝你好运通过这种方式,您可以显示包含在当前xhtml页面中的对话框。但是如果您查看PF showcase,“viewCars”是一个不同的xhtml页面。有没有办法用PF 3.5加载另一个xhtml页面?@yannicuLar:没有。这是PF 4.0新的“对话框架”功能的一部分。只需升级到pf4.0。不用担心,我已经通过包含ui:include的对话框来实现了
<h:form>
    <p:commandButton ... oncomplete="dialogWidget.show()" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
    ...
</p:dialog>
<h:form>
    <p:commandButton ... action="#{bean.openDialog}" />
</h:form>
<p:dialog widgetVar="dialogWidget" ...>
    ...
</p:dialog>
public void openDialog() {
    // ...
    RequestContext.getCurrentInstance().execute("dialogWidget.show()");
}