【问题标题】:How get value of tag <p:menu> in primefaces如何在 primefaces 中获取标签 <p:menu> 的值
【发布时间】: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


【解决方案1】:

我只是通过我的网页的 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>

最后没问题!!! (Y)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2012-04-02
    • 2012-07-28
    • 1970-01-01
    相关资源
    最近更新 更多