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 afte开发者_JS百科r 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...
You must use redirect if you are doing navigation and request is done with ajax.
I am having a similar problem.
I am using primefaces and primefaces mobile and the navigation fails in Firefox when using
<p:commandButton>
with ajax="false" and action="find.xhtml?faces-redirect=true".
The only way I could make it work also in Firefox was by using <h:commandButton>
:
<h:commandButton value="#{msg.find}" process="find"
action="find.xhtml?faces-redirect=true" />
none of the above solution worked for me. You can still go for simple javascript
<p:commandButton onclick="window.location.href =home.xhtml"
style="height: 20px" type="button" title="title" icon="ui-icon-transferthick-e-w"/>
<h:commandButton
styleClass="btn btn-primary-active upgrade" data-dismiss="modal"
value="Upgrade Account"
action="profile.do?faces-redirect=true&tab=plan"
oncomplete="$('#freeGiftModal').hide();" process="@this" partialSubmit="true" immediate="true"/>
I used the commandbutton to navigate to profile page, and its working fine for me.
精彩评论