Heim > Java > javaLernprogramm > Wie gehe ich mit abgeschnittenen Pfadvariablen mit Sonderzeichen in Spring MVC @PathVariable um?

Wie gehe ich mit abgeschnittenen Pfadvariablen mit Sonderzeichen in Spring MVC @PathVariable um?

Barbara Streisand
Freigeben: 2024-10-30 12:37:27
Original
771 Leute haben es durchsucht

How to Handle Truncated Path Variables with Special Characters in Spring MVC @PathVariable?

Adressierung abgeschnittener Pfadvariablen in Spring MVC mit @PathVariable

Problem:

Während der Verwendung Spring MVC mit @PathVariable für die RESTful-API-Entwicklung wurde beobachtet, dass Pfadvariablen, die Sonderzeichen enthalten, abgeschnitten werden. Insbesondere wenn eine Pfadvariable wie „blah2010.08.19-02:25:47“ bereitgestellt wird, wird nur der Teil bis zum ersten Punkt (d. h. „blah2010.08“) von @PathVariable erfasst.

Ursache:

Standardmäßig behandelt Spring MVC @PathVariable-Argumente als einfache Zeichenfolgen und erwartet, dass sie bestimmte Formatierungsregeln für URL-Parameter befolgen. Zu diesen Regeln gehören Beschränkungen der in Pfadvariablen zulässigen Zeichen, wobei Sonderzeichen wie Punkte und Bindestriche als Werttrennzeichen interpretiert werden. Folglich schneidet Spring die Pfadvariable beim ersten Vorkommen eines ungültigen Zeichens ab.

Lösung:

Um zu verhindern, dass Spring @PathVariable-Werte abschneidet, ist es notwendig, dies explizit zu tun Geben Sie an, dass das Argument einen größeren Zeichenbereich akzeptieren soll. Dies kann durch die Verwendung eines regulären Ausdrucks in der @RequestMapping-Annotation erreicht werden.

Um beispielsweise zuzulassen, dass Pfadvariablen Punkte, Bindestriche und andere Sonderzeichen enthalten, kann der folgende reguläre Ausdruck verwendet werden:

@RequestMapping(method = RequestMethod.GET, value = Routes.BLAH_GET + "/{blahName:.+}")
Nach dem Login kopieren

Das Suffix „.“ im regulären Ausdruck gibt an, dass die Pfadvariable {blahName} mit jeder nicht leeren Zeichenfolge übereinstimmen sollte, wodurch effektiv alle Zeichen im bereitgestellten Pfad erfasst werden.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit abgeschnittenen Pfadvariablen mit Sonderzeichen in Spring MVC @PathVariable um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage