2010-08-18 2 views
1

ice : menuPopup을 사용하여 트리 노드에 메뉴를 동적으로 생성합니다. 왜 이벤트 리스너가 호출되지 않습니까?

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이}"

라는 결코 극복된다 : 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}"/> 
    . . . 

메뉴 항목과 같은 동적이 코드에 의해 만들어집니다했습니다 . MenuItem의 methodBinding 및 setActionListener 메서드를 사용해 보았지만 작동하지 않습니다. 어디서 잘못 가고 있습니까?

답변

0

발견! MenuItem id 특성이 누락되었습니다. 을 추가했습니다.

예상대로 작동합니다.