【发布时间】:2016-07-26 05:33:31
【问题描述】:
我正在做一个网络应用程序,其中我有一个带有列表实体的菜单,并且这个实体将在一个 facelets 模板中被评估,我现在需要获取这个实体的 ID 来评估它是怎么做的?
我是这么想的:
<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
【问题讨论】:
-
只需向您在模型中创建的每个菜单项添加一个 actionListener/command 并确保它使用 ajax。见primefaces.org/showcase/ui/menu/menu.xhtml。在 actionListener 中,您可以检索事件并从中检索相关信息。 (对不起,没有时间创建一个完整的答案示例)
标签: ajax jsf primefaces