La página JSF 2 no se actualiza después de que se completa la acción

Tengo un problema en el que mi página no se actualiza después de que se completa una acción.

Tengo este formulario en una página:

<h:form id="fundingResults">

    <p:ajaxStatus style="width:16px;height:16px;">
        <f:facet name="start">
            <p:graphicImage value="/images/loading4.gif" />
        </f:facet>
        <f:facet name="complete">
            <h:outputText value="" />
        </f:facet>
    </p:ajaxStatus>

    <p:dataTable>
        // some form elements in the table
    </p:dataTable>  

   <p:commandButton id="btnEdit" value="Submit" type="submit" action="#{fundingBacker.classifyProducts}" style="float: right;margin-top:15px;" />           

</h:form>

El esqueleto de mi método classifyProducts es así:

public void classifyProducts() {
    // a bunch of stuff goes on in here
}

¿No debería la página actualizarse automáticamente después de que se complete el método classifyProducts() debido a la navegación implícita?

preguntado el 09 de marzo de 12 a las 15:03

2 Respuestas

Los botones de comando de Primefaces envían solicitudes ajax de forma predeterminada. Intenta agregar un atributo ajax='false' a p:commandButton.

respondido 09 mar '12, 15:03

Impresionante. Yo no estaba al tanto de esto. Funcionó. Sin embargo, no puedo aceptar tu respuesta durante 8 minutos más. - Bagre

Esto no es realmente una buena idea. Hay una razón por la cual las solicitudes son ajax por defecto. Por lo general, no es necesario actualizar toda la página. - EsterasT

Necesito actualizar la página porque en mi función classifyProducts, hay una lógica allí y, según el resultado de la lógica, actualiza la página o redirige a una página diferente. - Bagre

Debe especificar qué partes de la página actualizar. Por ejemplo, agregar update="@form" a la etiqueta del botón de comando debería ser el truco aquí, o podría especificar la identificación de los componentes individuales para actualizar.

respondido 09 mar '12, 15:03

No árbol. Un atributo de acción debe hacer una redirección. un actionListener necesita una actualización para actualizar realmente una sección de la página. No sabía que Primefaces era ajax=true por defecto. Al menos esa es mi comprensión al respecto. Aunque podría muy bien estar equivocado .. - Bagre

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