【发布时间】:2015-08-21 14:38:51
【问题描述】:
我有一个 Primefaces(版本 5)对话框与我的 bean 的属性绑定:
<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" />
我的back bean方法是:
@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);
}
当它运行时,在返回 bean 中调用 closeDialog 时出现异常:
警告:java.lang.NullPointerException:参数错误:参数键为空
尽管如此,我的对话框正确关闭。
为什么会出现这个异常?
提前致谢。
【问题讨论】:
-
你为什么用
@ViewScoped注释字段private Dialog dialog;? -
确认一下,为什么要从后台 bean 关闭对话框?
-
对于 Tiny:我的 bean 上设置了 @ViewScoped 注释
-
对于 WitYoBadSelf:我在 xhtml 页面中的对话框有一个表单,可以通过按钮保存插入一些信息。这个按钮调用一个 bean 支持方法,将数据存储在数据库中,最后必须关闭 Dialog。
标签: jsf primefaces dialog