java - initializr - spring mvc vs spring boot
En una solicitud Spring GET GET, ¿cuál es la diferencia entre @PathVariable y @RequestParam? (3)
@RequestParam vincula un parámetro de solicitud a un parámetro en su método. En su ejemplo, el valor del parámetro denominado "portfolioIdRequest" en la solicitud GET se pasará como el argumento "portfolioIdRequest" a su método. Un ejemplo más concreto: si la URL de solicitud es
http://hostname/portfolio/123?portfolioIdRequest=456
entonces el valor del parámetro "portfolioIdRequest" será "456".
Más información aquí : http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestparam
@PathVariable vincula de manera similar el valor de la variable de plantilla de URI "portfolioIdPath" con el parámetro de método "portfolioIdPath". Por ejemplo, si tu URI es
/portfolio/123
entonces el valor del parámetro del método "portfolioIdPath" será "123".
Más información aquí : http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates
En un ejemplo como el siguiente, ¿cuál es la diferencia entre @PathVariable
y @RequestParam
?
@RequestMapping(value = "/portfolio/{portfolioIdPath}", method = RequestMethod.GET)
public final String portfolio(HttpServletRequest request, ModelMap model,
@PathVariable long portfolioIdPath, @RequestParam long portfolioIdRequest)
Depende de la forma en que desee manejar su solicitud
@RequestParam example
(request)http://something.com/owner?ownerId=1234
@PathVariable example
(request) http://something.com/owner/1234
(in tour code) /owner/{ownerId}
@RequestParam identifica el parámetro HTTP GET o POST que envía el cliente (usuario), y @RequestMapping extrae un segmento de URL que varía de solicitud a solicitud:
http://host/?var=1
En la URL anterior, "var" es un requestparam.
http://host/registration/{which}
y las URL anteriores {que} es una asignación de solicitud. Puede llamar a su servicio de la siguiente manera:
http://host/registration/user
O como
http://host/registration/firm
En su aplicación puede acceder al valor de {which} (En el primer caso which = "user" y en el segundo which = "firm".