El botón de comando PrimeFaces no navega ni se actualiza

Estoy usando Primefaces para hacer mi aplicación un poco más hermosa. Me di cuenta que p:commandButton y h:commandButton no funcionan de la misma manera.

La p:commandButton llama al método y no sucede nada más. La h:commandButton llama al método y devuelve una navegación.

Tengo problemas para redireccionar después de presionar el botón de inicio de sesión al usar p:commandButton. ¿Cómo lidiar con eso?


Tengo un parámetro de actualización:

<p:commandButton value="Login" action="#{login.login}" type="submit" update="msgs" />

preguntado el 09 de enero de 11 a las 12:01

6 Respuestas

<p:commandButton> necesita uno de los siguientes para funcionar correctamente:

  • esta update atributo para enumerar los ID de los componentes para volver a renderizar (para solicitudes AJAX)
  • el atributo ajax="false" para realizar un envío normal que no sea ajax.

Si no tiene ninguno, el botón realiza de forma predeterminada una solicitud AJAX sin comentarios de la interfaz de usuario.

Además, he tenido problemas con ninguna de las opciones funcionando cuando el entorno <h:form> tuvo un enctype atributo.

Respondido el 26 de enero de 11 a las 18:01

¿Quieres ajax="false" si desea tener una solicitud sincrónica con una navegación. En cuanto a la update parámetro, ver mi comentario en una de tus preguntas anteriores al que aún no respondiste. - BalusC

Sry, me olvidé de eso -.- - Sven

En cuanto a la enctype="multipart/form-data" problema, para eso debe asegurarse de haber configurado PrimeFaces FileUploadFilter según las instrucciones de su Guía del usuario. - BalusC

@BalusC: Ah, y ahora sé dónde está eso enctype vino - la carga del archivo resultó ser innecesaria, pero el atributo se quedó para estropear las cosas ... ¡Gracias! - Michael Borgwardt

Creo que Cagatay ment fue:

¿Afecta la regulación de la no es navegar por la página:

<p:commandButton action="home.xhtml" value="Go Home"/>

Funciona (redirige la página):

<p:commandButton action="home.xhtml?faces-redirect=true" value="Go Home"/>

Funciona (redirige la página)

<p:commandButton action="home?faces-redirect=true" value="Go Home"/>

si .xhtml es su sufijo predeterminado definido en web.xml:

<context-param>
        <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
        <param-value>.xhtml</param-value>
    </context-param>

Se puede encontrar más información en el foro de Primefaces, por ejemplo en esta discusión sobre navegación

Espero que haya ayudado un poco ...

Respondido 23 Abr '21, 17:04

Debe usar la redirección si está navegando y la solicitud se realiza con ajax.

Respondido el 09 de enero de 11 a las 20:01

Estoy teniendo un problema similar.

Estoy usando primefaces y primefaces mobile y la navegación falla en Firefox al usar <p:commandButton> con ajax = "false" y action = "find.xhtml? faces-redirect = true".

La única forma en que podía hacerlo funcionar también en Firefox era usando <h:commandButton>:

<h:commandButton value="#{msg.find}" process="find" 
                     action="find.xhtml?faces-redirect=true" />

Respondido 05 Jul 12, 17:07

ninguna de las soluciones anteriores funcionó para mí. Todavía puede optar por un javascript simple

<p:commandButton onclick="window.location.href =home.xhtml"
                    style="height: 20px" type="button" title="title" icon="ui-icon-transferthick-e-w"/>

Respondido 25 Abr '18, 12:04

<h:commandButton 
                             styleClass="btn btn-primary-active upgrade" data-dismiss="modal" 
                             value="Upgrade Account" 
                             action="profile.do?faces-redirect=true&amp;tab=plan" 
                             oncomplete="$('#freeGiftModal').hide();" process="@this" partialSubmit="true" immediate="true"/>

Usé el botón de comando para navegar a la página de perfil, y funciona bien para mí.

respondido 11 nov., 18:10

Su respuesta no es efectivamente diferente a las demás y, en cierto modo, es peor. Además no beimg un p:commandButton, que con los atributos correctos 'simplemente funciona', contiene atributos que no son válidos para un h:commandButton, más que uno de los otros responde - Kukeltje

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.