wake-up-neo.com

PrimeFaces commandButton navigiert oder aktualisiert nicht

Ich benutze Primefaces, um meine App ein bisschen schöner zu machen. Ich habe festgestellt, dass p:commandButton und h:commandButton nicht gleich funktionieren.

Der p:commandButton ruft die Methode auf und nichts anderes passiert. Der h:commandButton ruft die Methode auf und gibt eine Navigation zurück.

Ich habe Probleme mit der Weiterleitung nach dem Drücken der Login-Taste, wenn Sie p:commandButton verwenden. Wie gehe ich damit um?


Ich habe einen Aktualisierungsparameter:

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

<p:commandButton> benötigt eine der folgenden Funktionen, um ordnungsgemäß zu funktionieren: 

  • das update-Attribut zum Auflisten der IDs der Komponenten, die erneut gerendert werden sollen (für AJAX -Anfragen)
  • das Attribut ajax="false", um ein normales Senden ohne Ajax durchzuführen.

Wenn Sie über keine der Optionen verfügen, führt die Schaltfläche standardmäßig eine AJAX - Anforderung ohne UI-Rückmeldung aus.

Außerdem hatte ich Probleme mit keiner der beiden Optionen, wenn der umgebende <h:form> ein enctype-Attribut hatte.

51

Ich denke, was Cagatay ment war:

Navigiert nicht auf der Seite:

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

Works (leitet die Seite um):

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

Works (leitet die Seite um) 

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

wenn .xhtml der in web.xml definierte Standard-Postfix ist:

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

Weitere Informationen finden Sie im primefaces-Forum, zum Beispiel in diese Diskussion über die Navigation

Ich hoffe das hat ein bisschen geholfen ...

31
alfonx

Sie müssen die Weiterleitung verwenden, wenn Sie die Navigation durchführen und die Anforderung mit ajax erfolgt.

8
Cagatay Civici

Ich habe ein ähnliches Problem. 

Ich verwende Primefaces und Primefaces Mobile und die Navigation in Firefox schlägt fehl, wenn <p:commandButton> mit ajax = "false" und action = "find.xhtml? Faces-redirect = true" verwendet wird. 

Der einzige Weg, den ich auch in Firefox zum Laufen bringen konnte, war <h:commandButton>:

<h:commandButton value="#{msg.find}" process="find" 
                     action="find.xhtml?faces-redirect=true" />
4
zzirna
<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"/>

Ich habe die Befehlsschaltfläche verwendet, um zur Profilseite zu navigieren, und es funktioniert einwandfrei.

0
shehraz490

keine der oben genannten Lösungen hat für mich funktioniert. Sie können immer noch für einfaches Javascript gehen

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