2015-09-03 19 views
11

A mia conoscenza entrambi hanno lo stesso scopo. Tranne il fatto che @PathVariable proviene dal framework di primavera e @PathParam è di Javax.ws.rs. Qualche idea su questo?Qual è la differenza tra @PathParam e @PathVariable

+2

possibile duplicato del [@RequestParam vs @PathVariable] (http://stackoverflow.com/questions/13715811/requestparam-vs-pathvariable) –

+5

hai risposto alla tua domanda . Questa differenza non è abbastanza grande per te? –

+0

Suresh, mi piace la tua risposta migliore delle risposte qui sotto.Penso che forse è importante notare che 1) Spring onora PathParam e la sua PathVariable, e 2) quando possibile PathParam di Java è preferibile (perché potresti sostituire Spring un giorno con un'altra tecnologia, ma finché lavori con Java ...) – inor

risposta

3

@PathParam è un'annotazione parametro che consente di mappare frammenti di percorso URI variabili nella chiamata al metodo.

@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 
    } 
} 

per maggiori dettagli: JBoss DOCS

In Spring MVC è possibile utilizzare il @PathVariable annotazioni su un argomento del metodo per legare al valore di un modello variabile URI per maggiori dettagli: SPRING DOCS

+1

in altre parole, fa lo stesso, ma '@ PathVariable' è l'equivalente da utilizzare in Spring (?) – Blauhirn

1

@PathParam è un'annotazione parametro che consente di mappare frammenti di percorso URI variabile nella chiamata al metodo.

@PathVariable è ottenere alcuni segnaposto dal URI (Spring chiamano un modello URI)

-2

@PathVariable

@PathVariable è l'annotazione, che viene utilizzato nella URI per la richiesta in ingresso . Diamo un'occhiata qui sotto

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

@RequestParam

annotazione @RequestParam utilizzati per accedere ai valori dei parametri di query dalla richiesta.

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

Nota

tutto ciò che chiediamo con il riposo chiamano cioè, @PathVariable

qualunque cosa stiamo accedendo per le query di scrittura IE, @RequestParam

+0

sebbene la mia domanda sia la differenza tra pathvariable e pathparam. Grazie per la risposta . – suresh

1

PathParam:

Per assegnare i valori dei parametri URI a argomenti del metodo

Es,

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

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

PathVariable:.

Per assegnare valori segnaposto URI di argomenti di metodo.

Eg.,

http://localhost:8080/books/1234 

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