2016-07-26 168 views
0

我正在做一個web應用程序,我有一個列表實體的菜單,這個實體將被評估所有它在一個facelets模板,我現在我需要得到這個ID實體可以評估它是如何做的?如何獲得標籤<p:menu>在素數的價值

我認爲它:

<p:menu model="#{entidadView.menuModel}" toggleable="true" > 

    <p:ajax listener="#{grupoView.storeEntidad}"/> 

</p:menu> 

和我的豆,它是:

public MenuModel getMenuModel(){ 
DefaultSubMenu subMenu2 = new DefaultSubMenu("Auditoria"); 
    for (Entidad entidad : getAllEntidad()){ 
     item = new DefaultMenuItem(entidad.getNombre()); 
     item.setOutcome("/auditar.xhtml");  
     subMenu2.addElement(item); 
    } 

    model.addElement(subMenu2); 

//Event to Ajax 
public void storeEntidad(ValueChangeEvent evento){ 

    this.idEntidad = evento.getNewValue().toString();; 
    System.out.println(idEntidad); 

} 

但說我這個錯誤:

<p:ajax> Unable to attach behavior to non-ClientBehaviorHolder parent 
+0

只需將一個actionListener /命令添加到您在模型中創建的每個菜單項並確保它使用ajax。請參閱http://www.primefaces.org/showcase/ui/menu/menu.xhtml。在actionListener中,您可以檢索事件並從中檢索相關信息。 (對不起,沒時間用答案創建一個完整的例子) – Kukeltje

回答

0

我也只由發送參數我的網頁的URL,然後我捕捉它。 我的豆:

public MenuModel getMenuModel(){ 
    DefaultSubMenu subMenu2 = new DefaultSubMenu("Auditoria"); 
    for (Entidad entidad : getAllEntidad()){ 
     idEntidad = String.valueOf(entidad.getEntidad_id()); 
     item = new DefaultMenuItem(entidad.getNombre()); 
     item.setParam("entidad", idEntidad); 
     item.setOutcome("/auditar.xhtml");  
     subMenu2.addElement(item); 
} 

model.addElement(subMenu2); 
} 

而接下來的頁面我捕捉到:

<html ...> 
    <f:metadata> 
    <f:viewParam name="entidad" value="#{grupoView.idEntidad}"/> 
    </f:metadata> 

<body> 

而且finaally這是好的! (Y)