2016-07-26 16 views
0

Ich mache eine Web-Anwendung, wo ich ein Menü mit einer Liste Entitäten haben und diese Entitäten ausgewertet werden, alles ist es in einer Facelets-Vorlage und ich muss jetzt die ID davon Entität zu bewerten Wie geht es?Wie erhalten Wert von Tag <p:menu> in Primzahlen

Ich dachte, es:

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

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

</p:menu> 

und My Bean ist:

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); 

} 

aber sagen Sie mir diesen Fehler:

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

Fügen Sie jedem Menüelement, das Sie im Modell erstellen, einen actionListener/Befehl hinzu und stellen Sie sicher, dass er ajax verwendet. Siehe http://www.primefaces.org/showcase/ui/menu/menu.xhtml. Und im actionListener können Sie das Ereignis abrufen und von diesem die relevanten Informationen abrufen. (Entschuldigung, keine Zeit, um ein vollständiges Beispiel mit einer Antwort zu erstellen) – Kukeltje

Antwort

0

Ich habe es nur durch die den Parameter senden URL meiner Webseiten und ich fange sie dann ein. Meine Bohne:

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); 
} 

Und die nächsten Seiten ich so erfassen:

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

<body> 

Und finaally Es war in Ordnung !!! (Y)