JAX-RS mit Jersey: die Übergabe von form-Parameter zu SETZEN Methode für die Aktualisierung einer Ressource
Ich das update einer Person-Datensatz mit Vorname und Nachname. Benutzer sollten in der Lage sein, es zu ändern von html-Formular und senden Sie es aktualisiert werden soll.
Hier ist mein code.
@PUT
@Path("/{userId}")
public Response updatingResource(@FormParam("firstName") String firstName, @FormParam("lastName ") String lastName , @PathParam("userId") String userId){
System.out.println(firstName);
System.out.println(lastName);
return Response.ok().build();
}
SOP-Anweisungen druckt null. Ich habe mit Mozilla Firefox-Poster-plugin zum senden von PUT-Anfrage.
Ich habe auch versucht, durch kommentieren es mit @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
aber es ist immer noch Druck null für die einzelnen Werte.
Wie zu schreiben und zu call-PUT-Methode, erhält diese drei Werte. Ich stolpere herum viel und fanden, dass Menschen zu Fragen, um zu verwenden JSON oder XML. Wie kann ich das konsumieren von JSON? Ich wäre sehr greatfull wenn mir jemand helfen zu schreiben, REST-Methode zum aktualisieren einer Ressource
Wenn ich senden PUT-Anforderung mit Firefox RESTClient und Google rest-client ich bin in der Lage, um die form-Parameter. Dieses tool hat so etwas wie Körper-Abschnitt, wo ich platziert firstName=Amit&lastName=Patel
. Auch ich fügte header Content-Type
als application/x-www-form-urlencoded
.Ich denke, Firefox ist Poster ist buggy. Kann mir jemand empfehlen es ist eine andere Art, wie ich sollte, überprüfen Sie den code oder kann ich Vertrauen, auf den ersten zwei REST-clients?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben Anmerkungen zu deiner Methode mit
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
, senden Sieapplication/x-www-form-urlencoded
als content-type. Hast du es?Bearbeitet werden: Sie können FormParams nur mit POST:
Alternativ können Sie einen Ansatz, wie dies in Überschreiben die HTTP-Methode mit JAX-RS :
Du im Grunde würde ein hidden parameter /HTTP-header und dann nach der form. In Ihrem servlet, Sie stellen einen Filter, der überprüft, ob ein bestimmter header /hidden-Formular-element und ändert die POST in PUT-Anfrage. Diese ist an Ihrem pur und verbraucht richtig, wenn Sie kommentierten mit STELLEN.
ist es nicht wahr, dass die STELLEN nicht akzeptieren FormParameters. Ich benutze @FormParam mit PUT erfolgreich. Vielleicht ist es die @PathParam. Ich habe nicht versucht.
Scheint es keine Notwendigkeit für spezielle Anmerkungen entweder. Hier ist eine arbeitende Klasse in meine Anwendung:
Heißt es von jQuery-wie so:
den ${pageContext.Anfrage.contextPath} ist von JSP -