Почему прослушиватель событий не вызывается? - PullRequest
1 голос
/ 18 августа 2010

Я использую ice: menuPopup для динамического создания меню на узлах дерева.На странице jsf у меня есть что-то вроде

  <f:facet name="content">
     <ice:panelGroup id="faccont" style="display: inline" menuPopup="qtaPupMenu"><ice:menuPopup imageDir="/images">
           <ice:menuItems  id="qtaPupMenu" value="#{item.userObject.menuModel}"/>
   . . .

Элементы меню динамически создаются с помощью этого кода:

  public List<MenuItem> getMenuModel() {
    List<MenuItem> items = new LinkedList<MenuItem>();
    MenuItem mi = new MenuItem();
    mi.setValue("menu text");    
    ExpressionFactory expf = FacesContext.getCurrentInstance().getApplication().getExpressionFactory();
    MethodExpression mthd = expf
    .createMethodExpression(FacesContext.getCurrentInstance().getELContext(), "#{beanmodel.clickMenuContx}", void.class, new Class[] { ActionEvent.class });
    mi.setActionExpression(mex);           
    items.add(mi);
    return items;
  }

Проблема в том, что слушатель событий "# {beanmodel.clickMenuContx}"никогда не звонят.Я пробовал также с методом methodBinding и setActionListener метода MenuItem, но не работает.Куда я иду не так?

1 Ответ

0 голосов
/ 19 августа 2010

Нашли это!Отсутствовал атрибут MenuItem id .Я добавил

   mi.setId("myUniqueId");

и все работает как положено.

...