webentwicklung-frage-antwort-db.com.de

Was ist der Unterschied zwischen @PathParam und @PathVariable?

Meines Wissens dient beides dem gleichen Zweck. Außer der Tatsache, dass @PathVariable ist von Spring MVC und @PathParam ist von JAX-RS. Irgendwelche Einsichten dazu?

34
suresh

@ PathVariable und @ PathParam werden beide für den Zugriff auf Parameter aus RI-Vorlage verwendet

Unterschiede:

  • Wie Sie bereits erwähnt haben, stammt @PathVariable aus dem Frühjahr und @PathParam aus JAX-RS .
  • @PathParam kann nur mit REST verwendet werden, wobei @PathVariable in Spring verwendet wird, damit es in MVC und REST funktioniert.
20
Premraj

PathParam:

Zuweisen von URI-Parameterwerten zu Methodenargumenten. Im Frühling ist es @RequestParam.

Z.B.,

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

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

PathVariable:

So weisen Sie Methodenargumenten URI-Platzhalterwerte zu.

Z.B.,

http://localhost:8080/books/1234

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

@ PathParam ist eine Parameteranmerkung, mit der Sie variable URI-Pfadfragmente in Ihren Methodenaufruf abbilden 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 Details: JBoss DOCS

In Spring MVC können Sie die Annotation @ PathVariable für ein Methodenargument verwenden, um es für weitere Details an den Wert einer URI-Vorlagenvariablen zu binden: SPRING DOCS

8
FuSsA

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

@PathVariable soll einen Platzhalter von der URI erhalten (Spring nennt es eine URI-Vorlage)

2
Parag P. Phatak