Problem:
Wenn ein Spring MVC-Controller eine @PathVariable mit einer benutzerdefinierten Pfadvariablen definiert Argument, Pfadsegmente, die Sonderzeichen enthalten, werden abgeschnitten.
Beispiel:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName}")
Die Übergabe eines URI mit einer Pfadvariablen blah2010.08.19-02:25:47 würde Dies führt dazu, dass der blahName-Parameter auf blah2010.08 gekürzt wird.
Lösung:
Um eine Kürzung zu verhindern, verwenden Sie einen regulären Ausdruck im @RequestMapping-Argument:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
Die . = Regex erlaubt eine beliebige Anzahl von Zeichen (einschließlich Sonderzeichen) nach dem führenden Punkt, wodurch effektiv das gesamte Pfadsegment als Pfadvariablenwert erfasst wird. request.getRequestURI() gibt dann den vollständigen URI zurück, einschließlich des vollständigen blahName.
Das obige ist der detaillierte Inhalt vonWie verhindert man die Kürzung von @PathVariable in Spring MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!