2014-02-12 10 views
9

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.

+0

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) –

+0

Ich kann es auch nicht mit 4.0.0+ reproduzieren . Funktioniert auch für 3.0.5. –

+0

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

Antwort

1

Dumm mich! Es war ein Fehler in einem völlig anderen Teil. Ich rufe den Controller mit Ajax mit einigen Javascript-Verarbeitung beteiligt und der Fehler ist da - es ersetzt "plus" mit "Leerzeichen" und dann ruft den Server. Danke an alle für ihre Zeit damit.

Verwandte Themen