Adressage des variables de chemin tronqué dans Spring MVC avec @PathVariable
Problème :
Lors de l'utilisation Spring MVC avec @PathVariable pour le développement de l'API RESTful, il a été observé que les variables de chemin contenant des caractères spéciaux étaient tronquées. Plus précisément, lorsqu'une variable de chemin telle que "blah2010.08.19-02:25:47" est fournie, seule la partie jusqu'à la première période (c'est-à-dire "blah2010.08") est capturée par @PathVariable.
Cause :
Par défaut, Spring MVC traite les arguments @PathVariable comme de simples chaînes et s'attend à ce qu'ils suivent certaines règles de formatage des paramètres d'URL. Ces règles incluent des restrictions sur les caractères autorisés dans les variables de chemin, les caractères spéciaux tels que les points et les tirets étant interprétés comme des délimiteurs de valeur. Par conséquent, Spring tronque la variable path à la première instance d'un caractère invalide.
Solution :
Pour empêcher Spring de tronquer les valeurs @PathVariable, il est nécessaire de explicitement précisez que l'argument doit accepter une gamme plus large de caractères. Ceci peut être réalisé en utilisant une expression régulière dans l'annotation @RequestMapping.
Par exemple, pour permettre aux variables de chemin de contenir des points, des tirets et d'autres caractères spéciaux, l'expression régulière suivante peut être utilisée :
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
Le suffixe ". " dans l'expression régulière indique que la variable de chemin {blahName} doit correspondre à n'importe quelle chaîne non vide, capturant efficacement tous les caractères du chemin fourni.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!