spring mvc - requestparam - ¿Cuál es la diferencia entre @PathParam y @PathVariable
request param url example (5)
Que yo sepa, ambos sirven al mismo propósito. Excepto el hecho de que @PathVariable
es de Spring MVC y @PathParam
es de JAX-RS. ¿Alguna idea sobre esto?
@PathVariable y @PathParam se utilizan para acceder a los parámetros desde la plantilla URI
Diferencias
- Como mencionó, @PathVariable es de Spring y @PathParam es de JAX-RS .
- @PathParam puede usar solo con REST, donde se usa @PathVariable en Spring para que funcione en MVC y REST.
@PathParam
es una anotación de parámetros que le permite asignar los fragmentos de la ruta URI variable a su llamada de método.
@PathVariable
es para obtener un marcador de posición de la URI (Spring lo llama una Plantilla URI)
@PathParam es una anotación de parámetros que le permite asignar los fragmentos de la ruta URI variable a su llamada de método.
@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
}
}
para más detalles: JBoss DOCS
En Spring MVC puede usar la anotación @PathVariable en un argumento de método para vincularla al valor de una variable de plantilla URI para obtener más detalles: SPRING DOCS
@PathVariable
@PathVariable es la anotación, que se utiliza en el URI para la solicitud entrante. Veamos abajo
http://localhost:8080/restcalls/101?id=10&name=xyz
@RequestParam
@RequestParam anotación utilizada para acceder a los valores de los parámetros de consulta desde la solicitud.
public String getRestCalls(
@RequestParam(value="id", required=true) int id,
@RequestParam(value="name", required=true) String name){...}
Nota
lo que sea que estemos solicitando con llamada de descanso, es decir, @PathVariable
lo que sea que tengamos acceso para escribir consultas, es decir, @RequestParam
PathParam:
Para asignar valores de parámetros URI a argumentos de método. En primavera, es @RequestParam
.
P.ej.,
http://localhost:8080/books?isbn=1234
@GetMapping("/books/")
public Book getBookDetails(@RequestParam("isbn") String isbn) {
PathVariable:
Para asignar valores de marcador de posición URI a argumentos de método.
P.ej.,
http://localhost:8080/books/1234
@GetMapping("/books/{isbn}")
public Book getBook(@PathVariable("isbn") String isbn) {