java.lang.NullPointerException:参数错误:参数key为空



我有一个带有bean属性的Primefaces(版本5)对话框绑定:

    <p:dialog 
    id="dialog"   
    widgetVar="myDialog" 
    modal="true" 
    resizable="false"
    appendTo="@(body)"
    binding="#{bean.dialog}"
>
...
<p:commandButton    
                id="cmdButton"
                action="#{bean.test()}" 
                value="Save"
                disabled="false" />

我的背豆方法是:

@ViewScoped
private Dialog dialog;
public Dialog getDialog() {
        return dialog;
}
public void setDialog(Dialog dialog) {
        this.dialog = dialog;
}
public void test( ) 
{
    RequestContext rc = RequestContext.getCurrentInstance();
    rc.execute("PF('myDialog').hide();");
    rc.closeDialog(dialog);
}   

当它运行时,我得到一个异常在closeDialog调用回bean:

警告:java.lang.NullPointerException: Argument Error: Parameter key is null

尽管如此,我的对话框正确关闭。

为什么会出现这个异常?

PrimeFaces有两种类型的对话实现:

  1. p。对话框(如您的):通过使用客户端api的show()和hide()方法来管理对话框的可见性。
  2. 对话框框架:在运行时动态生成的外部页面中显示的对话框。

回答你的问题:1. 由"rc.closeDialog(dialog);"引发的异常,该异常应在dialog框架中使用。例如

public void selectResultFromDialog(Object result) {
    RequestContext.getCurrentInstance().closeDialog(result);
}

这将关闭对话框并将所选对象返回到父页面。

为什么我的对话框正确关闭?rc.execute("PF('myDialog').hide();")关闭实际隐藏它的对话框。

对于您的解决方案,我建议您使用对话框框架。

相关内容

  • 没有找到相关文章

最新更新