PrimeFaces commandButton doesn't navigate or update

I'am using Primefaces to make my app a little bit more beautiful. I noticed that p:commandButton and h:commandButton don't work the same way.

The p:commandButton calls the method and nothing else hapens. The h:commandButton calls the method and returns a navigation.

I have got trouble with redirecting after pressing the login button when using p:commandButton. How to deal with that?


I do have an update parameter:

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

<p:commandButton> needs one of the following to work correctly:

  • the update attribute to list id's of components to re-render (for AJAX requests)
  • the attribute ajax="false" to make a normal, non-ajax submit.

If you have neither, the button does per default an AJAX request with no UI feedback.

Additionally, I've had problems with neither option working when the surrounding <h:form> had an enctype attribute.


I think what Cagatay ment was:

Does not navigate the page:

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

Works (redirects the page):

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

Works (redirects the page)

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

if .xhtml is your default postfix defined in web.xml:

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

More info can be found in the primefaces forum, for example in this discussion about navigation

I hope that helped a bit...