的RequestParam我有requestMapping「searchUser」和4個請求參數。 對於請求參數「phoneNumber」,我還接受特殊字符,如'(',')',' - '和'+'。在我的控制器中使用特殊字符'+'
期待字符'+'所有字符都顯示在我的日誌中。如果我發送例如「+123」或「123 + 1」等值,我可以獲得我的控制器「123」和「123 1」 它用空格替換「+」。
只用 '+' 發生
@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);
你知道我有什麼補充?
在此先感謝!
UPDATE:
我採用了棱角分明2我的前端,我有一個表格,我再發送值到我的春天啓動的後端。 我的http服務角:
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);
}
這是因爲「+」是URL中的特殊字符。嘗試將它作爲「%2C」發送到您的網絡服務器。 – f1sh
這很正常。請參閱HTML規範的[表單提交](https://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1)部分。你如何調用URL?如果它是從瀏覽器中的HTML表單調用的,那麼'+'應該自動進行百分比轉義。 – VGR
@ f1sh - %2C是逗號,%2B是加號。爲了增加更多的評論,plus被視爲空間的URL轉義。幾種方法之一。陷阱更多地查看URL編碼。 – Quintium