Tengo un PrimeFaces 3.4 Barra de menú como este:

<h:form>
    <p:menubar>
        <p:submenu label="File">
            <p:submenu label="New">
                <p:menuitem value="Go" id="page1LinkID" action="#{navBean.goNav}">     
                    <f:param id="page1ParamID" name="pageViewID" value="Page1"/>
                </p:menuitem>
                <p:menuitem value="Other" url="#"/>
            </p:submenu>
        </p:submenu>
    </p:menubar>
</h:form>

el backing bean es como este

@ManagedBean
@RequestScoped
public class navBean {

/**
 * Creates a new instance of navBean
 */
private String includedPage = "contentMain.xhtml";
public navBean() {
}
public String getPage(){
    return includedPage;
}
public void setPageName(){
    this.includedPage = includedPage;
}

public String goNav() {
   FacesContext context = FacesContext.getCurrentInstance();
   String selectedPageViewId = context.getExternalContext().getRequestParameterMap().get("pageViewId");
   if (selectedPageViewId.equalsIgnoreCase("page1")){
        includedPage = "test.xhtml";
    }
}   

El problema es que no funciona, sin excepciones, nada. Originalmente se trató de poner la acción en como esta…
El cambio de goNav a vacío…nada.

Alguna Idea?
Gracias De Antemano
Rick

  • Utilice la Barra de Menú para qué ?
InformationsquelleAutor RobD | 2013-04-15

2 Comentarios

  1. 6

    Primefaces menuitem tiene un atributo url para este caso:

    url: Url de la que se navega, cuando menuitem se hace clic.

    Si usted no está utilizando «url» pero queremos ir con «acción», a continuación, recuerde que usted está haciendo una solicitud post.

    En este caso, usted debe

    1. Agregar ?caras-redirect=true a su regreso de la Cadena, como «prueba.xhtml?caras-redirect=true»
    2. Conjunto de ajax=false en el menuitems, como

    Ver este respuesta desde el desarrollador líder de primefaces

  2. 0

    probar este

       public String goNav() {
           FacesContext context = FacesContext.getCurrentInstance();
           String selectedPageViewId = context.getExternalContext().getRequestParameterMap().get("pageViewId");
           if (selectedPageViewId.equalsIgnoreCase("page1")){
               includedPage = "test.xhtml?redirect=true";
    
           }
           return includedPage;
    }

Dejar respuesta

Please enter your comment!
Please enter your name here