如何将 AjaxBehavior 添加到 primefaces MenuItem。
我尝试为菜单项添加 AjaxBehavior 侦听器。但我得到一个例外,即 MenuItem 不支持任何 Ajax 行为。
如何将 Ajax 行为添加到菜单项?
<h:form>
<p:growl id="messages" />
<h3>Default Menubar</h3>
<p:menubar>
<p:submenu label="File" icon="ui-icon-document">
<p:submenu label="New" icon="ui-icon-contact">
<p:menuitem value="Project" url="#" />
<p:menuitem value="Other" url="#" />
</p:submenu>
<p:menuitem value="Open" url="#" />
<p:separator />
<p:menuitem value="Quit" url="#" />
<p:ajax event="change" listener="#{workflowController.changeMenu}" execute="@this" ></p:ajax>
</p:submenu>
<p:submenu label="Edit" icon="ui-icon-pencil">
<p:menuitem value="Undo" url="#"
icon="ui-icon-arrowreturnthick-1-w" />
<p:menuitem value="Redo" url="#"
icon="ui-icon-arrowreturnthick-1-e" />
</p:submenu>
<p:submenu label="Help" icon="ui-icon-help">
<p:menuitem value="Contents" url="#" />
<p:submenu label="Search" icon="ui-icon-search">
<p:submenu label="Text">
<p:menuitem value="Workspace" url="#" />
</p:submenu>
<p:menuitem value="File" url="#" />
</p:submenu>
</p:submenu>
</p:menubar>
</h:form>
爪哇代码:
public void changeMenu(AjaxBehaviorEvent event) {
try {
Object selectOneMenuObject = (event.getSource());
MenuItem mi=(MenuItem) selectOneMenuObject;
String category = ((String) mi.getValue());
} catch (Exception e) {
log.info("class : EditPayeeProfileController,Method : changePayeeType "
+ e);
e.printStackTrace();
}
}
错误:[org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/icareweb].[Faces Servlet]] (http-localhost-127.0.0.1-8080-1) Servlet。 servlet Faces Servlet 的 service() 抛出异常:javax.faces.view.facelets.TagException: /test1.xhtml 在第 37 行和第 51 列无法附加到非 ClientBehaviorHolder 父级