2010-07-26 9 views
5

Ich habe diese Arbeit Code in meinem Webapp:machen p: command Arbeit wie h: Taste

<h:button value="Edit user..." outcome="/public/user" > 
    <f:param name="userName" value="#{authBean.authUser}"/> 
</h:button> 

Was es tut:

  1. Es ist die Taste ein
  2. GET senden macht es geht der angegebene Parameter in der URL, sodass er als Lesezeichen gespeichert werden kann.

Was ich brauche:

  • Es sollte wie h arbeiten: oben-Taste (GET senden)
  • die Taste wie andere Primefaces Tasten aussehen soll (zB verziert mit einem Bild ... etc.).

Dies ist die nächste, die ich bekommen konnte:

<p:commandButton value="Edit user..." action="/public/user?faces-redirect=true" ajax="false" immediate="true" > 
    <f:param name="userName" value="#{authBean.authUser}"/> 
</p:commandButton> 

Er sendet eine POST, die mit einem GET auf die neue URL umgeleitet wird. Der Parameter ist jedoch verloren gegangen.

Eine weitere Idee:

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml"> 
    <f:param name="userName" value="#{authBean.authUser}"/> 
</p:linkButton> 

Die GET-Anforderung wird abgebrochen (??? nach Firebug) und die aktuelle Seite wird erneut gebucht.

Was ist der richtige Weg, dies zu tun?

UPDATE: das funktioniert (auf einer leeren Seite, ohne p: datatable):

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername"> 

aber nicht:

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&secondParam=otherValue"> 

Letzteres führt zu:

500: javax.servlet.ServletException: Error Parsing /sample0.xhtml: Fehler Traced [line: 14] Der Verweis nce to Entität "secondParam" muss mit der ';' enden Trennzeichen.


UPDATE2:

<p:linkButton value="Edit user..." href="http://localhost:8080/contextpath/faces/public/user.xhtml?userName=myusername&amp;secondParam=otherValue"> 

und es sieht gut aus ... aber ich das immer noch bekommen und abgebrochen und POST erneut gesendet: die & sollte entwertet werden

alt text http://img64.imageshack.us/img64/1017/primefaceslinkbutton.jpg

Dies ist die vollständige leere Seite, die ich versucht habe es mit:

Primefaces 2.1 freigeben.

Antwort

1

Verwenden Sie p:linkButton.


aktualisieren: wie pro Ihre Update mit dem Codebeispiel sollte die URL in href Attribut angegeben werden, nicht in der url attribtue. Siehe auch die Dokumentation der Komponente, die ich oben verlinkt habe.

Die Symptome zumindest klingt, als ob Sie eine asynchrone Anfrage (Ajax) GET sind Brennen, kein Synchron ein. FireBug würde dann tatsächlich diese Art von Fehler geben, wenn die Anforderung auf einer anderen Domäne ausgelöst wird.

Sie nicht, haben einige andere Javascripts, die mit dem Standardverhalten des störenden linkbutton/kollidiert sind? Die Taste navigiert durch eine einfache onclick="window.location=newurl;".


Update 2: funktioniert es, wenn Sie es Standalone in einer einfachen Seite testen? Z.B.

<!DOCTYPE html> 
<html xmlns="http://www.w3c.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.prime.com.tr/ui"> 
    <h:head> 
     <title>Test</title> 
    </h:head> 
    <h:body> 
     <p:linkButton value="test" href="http://stackoverflow.com" /> 
    </h:body> 
</html> 
+0

Ich versuche p: Linkbutton, aber es funktioniert nicht. Firebug sagt, die GET-Anfrage wurde abgebrochen, und die aktuelle Seite wird erneut POST. – egbokul

+0

Entschuldigung, ich habe keine vollständige Kopie/Paste gemacht. Ich verwende das Attribut "href", "URL" wird von Netbeans nicht einmal akzeptiert. Ich werde jetzt nach anderen Javascript suchen ... – egbokul

+0

Auf einer leeren Seite p: linkButton funktioniert ... Art von. f: param funktioniert nicht. Wenn ich den Parameter direkt in der URL anwähle (zB: ".../user.xhtml? UserName = myusername") funktioniert es. Wenn ich einen weiteren Parameter festlege, sagt Glassfish 500: javax.servlet.ServletException: Error Parsing /sample0.xhtml: Error Traced [line: 14] Der Verweis auf die Entity "relVerMin" muss mit dem ';' Trennzeichen. (relVerMin war mein zweiter Parameter, zB: ".../delrel.xhtml? relVermAj = 1 & relVerMin = 0") – egbokul

3

In PrimeFaces 2.2., Werden wir linkButton verwerfen und p: button einführen. Ticket ausstellen;

http://code.google.com/p/primefaces/issues/detail?id=1037

+0

Ah, schön. Können Sie das spezielle Problem im Detail erklären? – BalusC

+0

OK, also bleibe ich bei h: Knopf ohne Bilder für jetzt. Danke BalusC für deine Zeit und Mühe und natürlich Cagatay für die Antwort ;-) – egbokul

+0

Hier ist neu p: button; http://www.primefaces.org:8080/prime-showcase-labs/ui/button.jsf –