Ich habe ein Problem mit @PathVariable in SpringMVC-Controller. Immer wenn ich eine Zeichenfolge mit Plus ('+') übergebe, wird Plus durch Leerzeichen ersetzt. Die Codierung des Parameters hilft nicht.SpringMVC: @PathVariable Wert mit dem Pluszeichen (+)
Also zum Beispiel, wenn ich URL myapp/resend-validation/[email protected] anfordern, bekomme ich "meine [email protected]" in meiner email
Variable. Gleiches geschieht nach anfordernden myapp/resend-validation/my%[email protected]
Mein Controller sieht wie folgt aus:
@RequestMapping(value = "/resend-validation/{email:.+}")
public String resendValidation(@PathVariable String email, HttpServletRequest request, Model model) {
//controller code here
}
(der reguläre expresion in @ Wert RequestMapping ist, weil der Punkt in der E-Mail Adresse, sonst wird Wert nach dem Punkt abgeschnitten.Es hat keinen Einfluss auf mein Problem)
Vielen Dank im Voraus für jede Hilfe.
Welche Version von Spring verwenden Sie? Ich kann das nicht in 3.2.6.RELEASE wiedergeben. Wenn ich 'myapp/resend-validation/my + mail @ gmail.com' anfordere, bekomme ich' my + mail @ gmail.com' in der E-Mail-Variablen (kein Leerzeichen) –
Ich kann es auch nicht mit 4.0.0+ reproduzieren . Funktioniert auch für 3.0.5. –
Wir sind auf Frühling 3.1.3. Ich werde versuchen, andere Versionen zu testen und mit einer speziellen Konfiguration herumzutüfteln, die wir vielleicht verwenden. Danke für die Reaktionen. – Kejml