Abgeschnittene Pfadvariablen in Spring MVC
Bei der Verwendung von Pfadvariablen in Spring MVC kann es vorkommen, dass Sonderzeichen in der Variablen vorkommen dazu führen, dass es abgeschnitten wird. Dies kann zu unerwarteten Ergebnissen und Fehlern führen.
Problem:
Im bereitgestellten Controller wird die @PathVariable blahName beim Zugriff auf URLs mit Sonderzeichen abgeschnitten. Beispielsweise würde ein Pfad wie „get/blah2010.08.19-02:25:47“ dazu führen, dass blahName auf „blah2010.08“ gesetzt wird.
Grund:
Standardmäßig erwartet Spring MVC, dass Pfadvariablen einem bestimmten Format folgen und Zeichen wie Punkte und Bindestriche oft als Trennzeichen interpretiert werden. Dies führt dazu, dass die Variable an der Stelle abgeschnitten wird, an der ein solches Zeichen auftritt.
Lösung:
Um das Abschneiden zu verhindern, können Sie einen regulären Ausdruck im @ verwenden. RequestMapping-Argument. Dadurch können Sie ein flexibleres Muster für die Pfadvariable angeben. Beispielsweise würde der folgende reguläre Ausdruck jedes Zeichen in der blahName-Variablen zulassen:
@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
Durch Hinzufügen des :. Mit der @PathVariable ermöglichen Sie, dass das Muster einmal oder mehrmals mit jedem Zeichen übereinstimmt. Dadurch wird sichergestellt, dass die gesamte Pfadvariable erfasst wird, unabhängig von eventuell darin enthaltenen Sonderzeichen.
Das obige ist der detaillierte Inhalt vonWie verhindere ich das Abschneiden von Pfadvariablen in Spring MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!