2015-09-03 30 views
11

Według mojej wiedzy oba służą temu samemu celowi. Poza tym, że @PathVariable pochodzi z frameworka, a @PathParam pochodzi z Javax.ws.rs. Wszelkie spostrzeżenia na ten temat?Jaka jest różnica między @PathParam i @PathVariable

+2

możliwe duplikat [@RequestParam vs @PathVariable] (http://stackoverflow.com/questions/13715811/requestparam-vs-pathvariable) –

+5

pan odpowiedział na swoje pytanie . Czy ta różnica nie jest dla ciebie wystarczająco duża? –

+0

Suresh, podoba mi się twoja własna odpowiedź lepiej niż poniższe odpowiedzi.Myślę, że być może ważne jest, aby pamiętać, że 1) Spring honoruje PathParam, jak również własną PathVariable, i 2) w miarę możliwości Java PathParam jest preferowana (ponieważ możesz kiedyś zastąpić Spring inną technologią, ale tak długo, jak pracujesz z Javą ...) – inor

Odpowiedz

3

@PathParam to adnotacja parametryczna, która umożliwia odwzorowanie fragmentów ścieżek zmiennej URI do wywołania metody.

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

więcej szczegółów: JBoss DOCS

Wiosną MVC można użyć @PathVariable adnotacji na metodzie argument aby powiązać go z wartością URI Zmienna szablonu więcej szczegółów: SPRING DOCS

+1

innymi słowy, robi to samo, ale '@ PathVariable' jest odpowiednikiem używanym na wiosnę (?) – Blauhirn

1

@PathParam to adnotacja parametryczna, która umożliwia odwzorowanie fragmentów ścieżki zmiennej URI do wywołania metody.

@PathVariable jest uzyskanie pewnego zastępczy z URI (sprężyna nazywają to URI matrycy)

-2

@PathVariable

@PathVariable jest adnotacji, który jest stosowany w URI żądania przychodzącego . Spójrzmy poniżej

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

@RequestParam

adnotacji @RequestParam używany do uzyskiwania dostępu do wartości parametrów zapytania z żądania.

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

Uwaga

cokolwiek prosisz z resztą zadzwonić tj @PathVariable

cokolwiek mamy dostęp do zapytań pisania tj @RequestParam

+0

, chociaż moim pytaniem jest różnica między pathvariable i pathparam. Dziękuję za odpowiedź . – suresh

1

PathParam:

Aby przypisać wartości parametrów URI do argumenty metody.

Np

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

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

PathVariable.

Aby przypisać wartości zastępczych URI do argumentów metod.

Np.,

http://localhost:8080/books/1234 

@GetMapping("/books/{isbn}") 
    public Book getBook(@PathVariable("isbn") String isbn) { 
Powiązane problemy