我在我的webapps中使用Primefaces Dialog Framework。通过单击p:commandButton显示对话框,代码如下:
<p:commandButton actionListener="#{myBean.myDialogOpen}">
<p:ajax event="dialogReturn" listener="#{myBean.myDialogClosed}" update="@form" />
</p:commandButton>
它适用于Primefaces 5.2,但是如果我切换到5.3,对话框不再显示,单击按钮后整个页面都被冻结。当我调试代码时,我可以看到DefaultRequestContext.openDialog(...)被正确执行但是在firebug的JS控制台中我从jquery.js(ligne 1,col.231)得到了这个错误:
SyntaxError: missing } after property list
我不知道从哪里开始找出问题所在。有没有人遇到过这个问题?有什么建议吗?
编辑Mahendran,myDialogOpen的代码
public void myDialogOpen() {
Map<String, Object> options = new HashMap<String, Object>();
options.put("modal", true);
options.put("draggable", false);
options.put("resizable", false);
options.put("dynamic", true);
options.put("contentHeight", "'100%'");
options.put("contentWidth", "'100%'");
options.put("height", "210");
options.put("width", "280");
Map<String, List<String>> params = new HashMap<String, List<String>>();
if (patientDescription.getLocation() != null) {
List<String> list = new ArrayList<String>();
list.add(patientDescription.getLocation().getId().toString());
params.put("id", list);
}
RequestContext.getCurrentInstance().openDialog(
"/pages/dialogs/origin.xhtml", options,
params.size() > 0 ? params : null);
}