Primefaces 6 问题添加带有动作的动态菜单项

Primefaces 6 Problem Adding dynamically menuitem with actions

我的菜单项有问题。目标是将两个菜单项放入一个菜单中,单击数据表中的图标会弹出菜单,该图标会触发两个不同的操作。一切正常:弹出菜单并呈现菜单。 但是当我尝试使用定义了两个不同命令的 menuItem 创建服务器端创建菜单时,我在可视化中遇到错误,但是当我只使用一个命令时,它工作正常。

我尝试只使用一个,但效果很好,我尝试先使用 "ONE",然后 "TWO",效果很好,但当我尝试同时使用两者时,它会爆炸。

代码如下:

DefaultMenuItem firstmenuitem = new DefaultMenuItem("ONE");
firstmenuitem.setIcon("ui-icon-newwin");
firstmenuitem.setCommand("#{myMB.loadDetail1(row, dynMetaCol.id)}");
firstmenuitem.setUpdate("dialog1");
firstmenuitem.setOncomplete("PF('DlgWv1').show()");
menuModel.addElement(firstmenuitem);

DefaultMenuItem secondMenuItem = new DefaultMenuItem("TWO");
secondMenuItem.setIcon("ui-icon-newwin");
secondMenuItem.setCommand("#{myMB.loadDetail2(row, dynMetaCol.id)}");
secondMenuItem.setUpdate("dialog2");
secondMenuItem.setOncomplete("PF('DlgWv2').show()");
menuModel.addElement(secondMenuItem);

xhtml 内容是这样的:

...

<p:menu overlay="true" trigger="dynaButton" my="left top" at="left bottom" styleClass="ui-menu-context ui-menuitem-link" model="#{myMB.menuModel}"/>

...

结果:

XML Parsing Error: unclosed CDATA section
Location: http://myaddress/mywebapp/templates/myfolder
/myfolder/mypage.xhtml
Line Number 19, Column 5647:

似乎无法呈现第二个命令的操作和更新。

请帮忙。

由于我无法解释这个问题,所以我找到了解决方法。

抱歉,我删除了这些行:

firstmenuitem.setUpdate("dialog1");
firstmenuitem.setOncomplete("PF('DlgWv1').show()");

secondMenuItem.setUpdate("dialog2");
secondMenuItem.setOncomplete("PF('DlgWv2').show()");

并进入每个操作方法(loadDetail1 和 loadDetail2)我使用这个简单的方法:

public static void updateAndShowDialog(String dialogId, String widgetVarName) {
    RequestContext requestContext = RequestContext.getCurrentInstance();
    requestContext.update(dialog);
    requestContext.execute("PF('" + widgetVarName + "').show()");
}

希望对您有所帮助。

此致。