2015-09-03 7 views
11

Meines Wissens dient beiden der gleiche Zweck. Außer der Tatsache, dass @PathVariable vom Spring-Framework und @PathParam von Javax.ws.rs stammt. Irgendwelche Einblicke dazu?Was ist der Unterschied zwischen @PathParam und @PathVariable

+2

möglich Duplikat [@RequestParam vs @PathVariable] (http://stackoverflow.com/questions/13715811/requestparam-vs-pathvariable) –

+5

Sie haben Ihre eigene Frage beantwortet . Ist dieser Unterschied nicht groß genug für dich? –

+0

Suresh, ich mag deine eigene Antwort besser als die Antworten unten.Ich denke, es ist wichtig zu beachten, dass 1) Spring PathParam sowie seine eigene PathVariable und 2) wann immer möglich Java PathParam bevorzugt (weil Sie Spring eines Tages durch eine andere Technologie ersetzen können, aber solange Sie mit Java arbeiten) ...) – inor

Antwort

3

@PathParam ist eine Parameteranmerkung, mit der Sie variable URI-Pfadfragmente in Ihren Methodenaufruf mappen können.

@Path("/library") 
public class Library { 

    @GET 
    @Path("/book/{isbn}") 
    public String getBook(@PathParam("isbn") String id) { 
     // search my database and get a string representation and return it 
    } 
} 

für weitere Informationen: JBoss DOCS

In Spring MVC Sie die @PathVariable Anmerkung auf ein Verfahren Argument verwenden können, um es zu binden an den Wert einer Vorlage URI Variable für weitere Informationen: SPRING DOCS

+1

mit anderen Worten, es tut das gleiche, aber '@ PathVariable' ist das Äquivalent, das im Frühjahr (?) – Blauhirn

1

@PathParam ist eine Parameteranmerkung, mit der Sie variable URI-Pfadfragmente in Ihren Methodenaufruf mappen können.

@PathVariable ist einige Platzhalter aus der URI (Frühling nennt es eine URI-Vorlage)

-2

@PathVariable

@PathVariable wird die Anmerkung zu erhalten, die in der URI für die eingehende Anforderung verwendet wird, . Lassen Sie uns unter

http://localhost:8080/restcalls/101?id=10&name=xyz

@RequestParam schauen

@RequestParam Anmerkung für den Zugriff auf die Abfrageparameterwerte aus der Anforderung verwendet.

public String getRestCalls(
@RequestParam(value="id", required=true) int id, 
@RequestParam(value="name", required=true) String name){...} 

Hinweis

, was wir mit dem Rest fordern rufen dh @PathVariable

, was wir für das Schreiben von Abfragen zugreifen, dh, @RequestParam

+0

verwendet wird, obwohl meine Frage der Unterschied zwischen pathvariable und pathparam ist. Danke für Ihre Antwort . – suresh

1

PathParam:

Um URI-Parameterwerte zu zuweisen Methodenargumente.

Eg,

http://localhost:8080/books?isbn=1234 

@GetMapping("/books/") 
    public Book getBookDetails(@PathParam("isbn") String isbn) { 

PathVariable.

Um URI Platzhalter Werte Methodenargumente zugewiesen werden.

Eg.,

http://localhost:8080/books/1234 

@GetMapping("/books/{isbn}") 
    public Book getBook(@PathVariable("isbn") String isbn) {