primefaces openDialog问题

时间:2014-02-21 11:23:07

标签: jsf primefaces

我正在使用primeface,Dialog框架。

但是没有像openDialogcloseDialog这样的方法。

我正在使用:

RequestContext.getCurrentInstance().openDialog("viewCars", options, null);  

但没有这样的方法。我正在使用最新的primefaces库,即4.0。

4 个答案:

答案 0 :(得分:2)

这就是我做的方式

  RequestContext context2 = RequestContext.getCurrentInstance();
  context2.execute("PF('opendialog').show()");

请记住opendialogwidgetVarxhtml中它应该像

<p:dialog id="dialog" header="Open Dialog Box" widgetVar="opendialog">

我已经使用了它和它的工作。

答案 1 :(得分:0)

如anas所述的Requestface文本,可以从后端执行javascript。如果这是你需要的,那将是一个最佳的解决方案,但是,如果你必须通过按钮点击或处理打开一个对话框,你可以使用按钮事件。

<p:commandButton value="Open dialog" actionListener="anyMethod" onsuccess="dialog.show();"/>
<p:commandButton value="Close dialog" actionListener="anyMethod" onsuccess="dialog.hide();"/>

您可以根据需要使用onsuccess或oncomplete。

答案 2 :(得分:0)

实际上有这样的方法。 (在4.0中)

检查您是否导入了正确的RequestContext类

import org.primefaces.context.RequestContext;

其他库中有很多RequestContext类,您可能会错误地使用IDE的自动完成功能选择错误的类。

答案 3 :(得分:0)

您应该将以下配置添加到“faces-config.xml”文件中:

   <action-listener>
     org.primefaces.application.DialogActionListener
    </action-listener>
    <navigation-handler>
        org.primefaces.application.DialogNavigationHandler
    </navigation-handler>
    <view-handler>
        org.primefaces.application.DialogViewHandler
    </view-handler>  `

这部分记录在primeface的ver.5.0中,但未在primeface 4.0中提及

它对我有用。 (glassfish 3.0 + primeface 4.0)