Quelle est la différence entre @RequestParam
y @PathVariable
tout en traitant les caractères spéciaux ?
+
a été accepté par @RequestParam
comme espace.
Dans le cas de @PathVariable
, +
a été accepté comme +
.
Quelle est la différence entre @RequestParam
y @PathVariable
tout en traitant les caractères spéciaux ?
+
a été accepté par @RequestParam
comme espace.
Dans le cas de @PathVariable
, +
a été accepté comme +
.
Les deux annotations se comportent exactement de la même manière.
Seuls 2 caractères spéciaux '!' et '@' sont acceptés par les annotations @PathVariable et @RequestParam.
Pour vérifier et confirmer le comportement, j'ai créé une application Spring Boot qui ne contient qu'un seul contrôleur.
@RestController
public class Controller
{
@GetMapping("/pvar/{pdata}")
public @ResponseBody String testPathVariable(@PathVariable(name="pdata") String pathdata)
{
return pathdata;
}
@GetMapping("/rpvar")
public @ResponseBody String testRequestParam(@RequestParam("param") String paramdata)
{
return paramdata;
}
}
En suivant les demandes, j'ai obtenu la même réponse :
!@ a été reçu comme réponse dans les deux demandes
Il se peut que le type midia application/x-www-form-urlencoded convertisse l'espace en + et le récepteur décodera les données en convertissant l'adresse IP en une adresse IP. + pour l'espace. Vérifiez l'url pour plus d'informations. http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.