Variables de chemin tronqué dans Spring MVC
Lors de l'utilisation de variables de chemin dans Spring MVC, il est possible de rencontrer une situation où des caractères spéciaux dans la variable le faire tronquer. Cela peut entraîner des résultats et des erreurs inattendus.
Problème :
Dans le contrôleur fourni, le @PathVariable blahName est tronqué lors de l'accès aux URL contenant des caractères spéciaux. Par exemple, un chemin tel que "get/blah2010.08.19-02:25:47" entraînerait la définition de blahName sur "blah2010.08".
Raison :
Par défaut, Spring MVC s'attend à ce que les variables de chemin suivent un format spécifique, et les caractères tels que les points et les tirets sont souvent interprétés comme des délimiteurs. Cela provoque la troncature de la variable au point où un tel caractère est rencontré.
Solution :
Pour éviter la troncature, vous pouvez utiliser une expression régulière dans le @ Argument de requêteMapping. Cela vous permet de spécifier un modèle plus flexible pour la variable de chemin. Par exemple, l'expression régulière suivante autoriserait n'importe quel caractère dans la variable blahName :
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
En ajoutant le :. au @PathVariable, vous permettez au modèle de correspondre à n'importe quel caractère une ou plusieurs fois. Cela garantit que l'intégralité de la variable de chemin est capturée, quels que soient les caractères spéciaux qu'elle peut contenir.
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!