in meinem Controller Ich habe die requestMapping "searchUser" mit 4 Anfrage-Parameter. Für den Anfrageparameter "phoneNumber" akzeptiere ich auch Sonderzeichen wie '(', ')', '-' und '+'.RequestParam mit Sonderzeichen '+'
Erwarten Sie das Zeichen '+' alle Zeichen werden in meinem Protokoll angezeigt. Wenn ich zum Beispiel die Werte wie "+123" oder "123 + 1" sende, bekomme ich meinen Controller "123" und "123 1" Ersetzt das "+" durch ein Leerzeichen.
Es geschieht nur mit '+'
@RequestMapping(method = RequestMethod.GET, value = "/search", produces = "application/json")
public List<User> getWebUserProfiles(HttpServletRequest request, HttpServletResponse response,
@RequestParam("firstName") String firstName, @RequestParam("lastName") String lastName,
@RequestParam("email") String email
@RequestParam("phoneNumber") String phoneNumber);
Wissen Sie, was muss ich hinzufügen?
danke im voraus!
UPDATE:
I Angular 2 für meinen Frontend mit dem ich eine Form habe, und ich die Werte weiter zu meinem Feder-Boot-Backend senden. Mein http-Service in eckig:
search(searchParams: any){
let params = new URLSearchParams();
params.set('firstName', searchParams.firstName);
params.set('lastName', searchParams.lastName);
params.set('email', searchParams.email);
params.set('phoneNumber', searchParams.phoneNumber);
return this._http.get(this.baseURL+'search',
{ search:params })
.map(response => response.json())
.catch(this.handleError);
}
Das liegt daran, '' '' '' 'ist ein Sonderzeichen in einer URL. Versuche es als "% 2C" an deinen Webserver zu senden. – f1sh
Das ist normal. Siehe Abschnitt [Formularübermittlung] (https://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1) der HTML-Spezifikation. Wie rufen Sie die URL auf? Wenn es aus einem HTML-Formular in einem Browser aufgerufen wird, sollte das '+' automatisch in Prozent deklariert werden. – VGR
@ f1sh -% 2C ist ein Komma,% 2B ist das Pluszeichen. Und um Ihrem Kommentar mehr hinzuzufügen, wird es zusätzlich als URL-Escape für Leerzeichen behandelt. Eine von wenigen Möglichkeiten, dies zu tun. Sehen Sie in URL-Codierung etwas mehr. – Quintium