Quelle est la différence entre @ PathParam et @PathVariable?

<!-À ma connaissance, les deux ont le même but. Sauf le fait que @PathVariable est de Spring MVC et @PathParam est de JAX-RS. Des idées à ce sujet?

17
demandé sur Paul Samsotha 2015-09-03 08:20:12

5 réponses

@PathVariable et @PathParam les deux sont utilisés pour accéder aux paramètres de URI Template

Différences:

  • comme vous le mentionnez @PathVariable est de printemps et @PathParam est de JAX-RS.
  • @ PathParam peut utiliser avec repos seulement, où @PathVariable utilisé au printemps afin qu'il fonctionne en MVC et repos.
4
répondu Premraj 2018-03-25 05:56:41

@PathParam est une annotation de paramètre qui vous permet de mapper des fragments de chemin URI variables dans votre appel de méthode.

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

pour plus de détails : JBoss DOCS

au printemps MVC vous pouvez utiliser le @PathVariable annotation sur un argument de méthode pour le lier à la valeur D'une variable URI template pour plus de détails : SPRING DOCS

6
répondu FuSsA 2017-12-18 12:56:39

PathParam:

pour assigner des valeurs de paramètre URI aux arguments de méthode. Au Printemps, c'est @RequestParam.

par exemple.,

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

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

PathVariable:

pour assigner des valeurs URI placeholder aux arguments de méthode.

par exemple.,

http://localhost:8080/books/1234

@GetMapping("/books/{isbn}")
    public Book getBook(@PathVariable("isbn") String isbn) {
5
répondu WingsOfFire 2018-04-18 17:10:06

@PathParam est une annotation de paramètre qui vous permet de mapper des fragments de chemin URI variables dans votre appel de méthode.

@PathVariable est d'obtenir quelques espace réservé à partir de l'URI (Printemps appeler un Modèle URI)

1
répondu Parag P. Phatak 2017-12-18 17:04:11

@PathVariable

@PathVariable c'est l'annotation, qui est utilisée dans L'URI pour la requête entrante. Regardons ci-dessous!--4-->

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

@RequestParam

l'annotation@RequestParam utilisée pour accéder aux valeurs des paramètres de requête de la requête.

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

Remarque:

ce que nous demandons appel reste je.e, @PathVariable

tout ce à quoi nous accédons pour écrire des requêtes I. e, @RequestParam

-2
répondu Mohammad 2017-09-18 16:29:32