Как добавить AjaxBehavior к свойствам MenuItem.Как использовать Ajax Поведение к пунктам меню
Я попытался добавить прослушиватель AjaxBehavior для пункта меню. Но я получаю исключение, что MenuItem не поддерживает Ajax Behavior.
Как добавить поведение 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>
Java:
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] [по умолчанию-хост] [/ icareweb] [Грани Servlet]] (http-localhost-127.0.0.1-8080-1) Servlet.service() для сервлета Лица Servlet забросили исключение: javax.faces.view.facelets.TagException: /test1.xhtml в строке 37 и столбце 51 Не удалось выполнить приложить к non-ClientBehaviorHolder parent