Si encuentras alguna incompatibilidad con tu código o trabajo, recuerda probar siempre en un entorno de testing antes aplicar el código al proyecto final.
Solución:
@RequestParam
los parámetros anotados se vinculan a parámetros de solicitud de Servlet específicos. Los valores de los parámetros se convierten al tipo de argumento del método declarado. Esta anotación indica que un parámetro de método debe vincularse a un parámetro de solicitud web.
Por ejemplo, la solicitud de Angular para Spring RequestParam(s) se vería así:
$http.post('http://localhost:7777/scan/l/register?username="Johny"&password="123123"&auth=true')
.success(function (data, status, headers, config)
...
)
Punto final con RequestParam:
@RequestMapping(method = RequestMethod.POST, value = "/register")
public Map register(Model uiModel,
@RequestParam String username,
@RequestParam String password,
@RequestParam boolean auth,
HttpServletRequest httpServletRequest) {...
@RequestBody
los parámetros anotados se vinculan al cuerpo de la solicitud HTTP. Los valores de los parámetros se convierten al tipo de argumento del método declarado mediante HttpMessageConverters. Esta anotación indica que un parámetro de método debe vincularse al cuerpo de la solicitud web.
Por ejemplo, la solicitud de Angular para Spring RequestBody se vería así:
$scope.user =
username: "foo",
auth: true,
password: "bar"
;
$http.post('http://localhost:7777/scan/l/register', $scope.user).
success(function (data, status, headers, config)
...
)
Punto final con RequestBody:
@RequestMapping(method = RequestMethod.POST, produces = "application/json",
value = "/register")
public Map register(Model uiModel,
@RequestBody User user,
HttpServletRequest httpServletRequest) {...
Espero que esto ayude.
@RequestParam
hace que Spring asigne los parámetros de solicitud de la solicitud GET/POST al argumento de su método.
OBTENER solicitud
http://testwebaddress.com/getInformation.do?city=Sydney&country=Australia
public String getCountryFactors(@RequestParam(value = "city") String city,
@RequestParam(value = "country") String country)
Solicitud POST
@RequestBody
hace que Spring asigne toda la solicitud a una clase modelo y desde allí puede recuperar o establecer valores de sus métodos getter y setter. Compruebe a continuación.
http://testwebaddress.com/getInformation.do
Tú tienes JSON
los datos como tales provienen del front-end y llegan a su clase de controlador
"city": "Sydney",
"country": "Australia"
Java
Código – servidor (@RequestBody
)
public String getCountryFactors(@RequestBody Country countryFacts)
countryFacts.getCity();
countryFacts.getCountry();
public class Country
private String city;
private String country;
public String getCity()
return city;
public void setCity(String city)
this.city = city;
public String getCountry()
return country;
public void setCountry(String country)
this.country = country;
Encabezado de solicitud HTTP del mapa Content-Type
maneja el cuerpo de la solicitud.
-
@RequestParam
←application/x-www-form-urlencoded
, -
@RequestBody
←application/json
, -
@RequestPart
←multipart/form-data
,
-
RequestParam (API Spring Framework 5.1.9.RELEASE)
asignar a parámetros de consulta, datos de formulario y partes en solicitudes de varias partes.
RequestParam
es probable que se use con campos de formulario de nombre y valor -
Cuerpo de solicitud (Spring Framework 5.1.9. API DE LIBERACIÓN)
vinculado al cuerpo de la solicitud web. El cuerpo de la solicitud se pasa a través de un HttpMessageConverter para resolver el argumento del método dependiendo de la
content type
de la solicitud (por ejemplo, JSON, XML) -
RequestPart (Spring Framework 5.1.9.RELEASE API)
se utiliza para asociar la parte de un “
multipart/form-data
” peticiónRequestPart
es probable que se use con partes que tienen un contenido más complejo -
HttpMessageConverter (Spring Framework 5.1.9.RELEASE API)
un convertidor que puede convertir desde y hacia solicitudes y respuestas HTTP.
Todas las clases de implementación conocidas: …, AbstractJsonHttpMessageConverter, AbstractXmlHttpMessageConverter, …
Nos puedes añadir valor a nuestra información aportando tu veteranía en las interpretaciones.