In this simple page below, both the standard button and the PrimeFaces button trigger the validation and display the expected message. However, if there is no validation error, the browser navigates to nextPage.xhtml only if the standard button Submit B is used. Pressing Submit A just seems to alter the appearance of the page somewhat, and no navigation takes place.
<h:head>
<title>Some Title</title>
</h:head>
<h:body>
<h:form id="form">
<p:panelGrid id="panel" columns="2" border="0" cellpadding="10" cellspacing="1">
<p:outputLabel value="Enter Username" />
<p:inputText id="username" size="20" label="UserName" required="true">
<f:validateLength for="username" minimum="5" maximum="20" />
</p:inputText>
<p:outputLabel value="PrimeFaces Btn" />
<p:commandButton value="Submit A" action="nextPage" update="form"/>
<p:outputLabel value="Standard Btn" />
<h:commandButton value="Submit B" action="nextPage" />
</p:panelGrid>
<!-- <p:messages autoUpdate="true" /> -->
<p:message for="username" />
</h:form>
</h:body>
</html>