在SpringMVC中滞乙,使用@PathVariable把請求參數(shù)放到請求地址中時蚓聘,如果參數(shù)存在小數(shù)點(diǎn)耗美,則后臺獲取參數(shù)時京髓,最后一個小數(shù)據(jù)和后面的內(nèi)容會被Spring截取,是因?yàn)镾pring默認(rèn)根據(jù)請求文件的類型來決定視圖商架,因此最后一個小數(shù)點(diǎn)以及后面的內(nèi)容被當(dāng)做文件后綴而丟棄堰怨。
解決方法:
1、改成post請求或者 @RequestParam 甸私,
注:@PathVariable 獲取的是請求路徑中參數(shù)的值 @RequestParam 獲取的是請求參數(shù),一般是url問號后面的參數(shù)值
2诚些、在前端請求url的最后加上一個"/",這樣的話不管參數(shù)中有沒有小數(shù)點(diǎn)皇型,都會被當(dāng)做路徑诬烹,而不會被當(dāng)成文件,如:
$.ajax({
url: "/device/product/ABC.01/",
async:false,
type: "GET",
success: function (data) {
//todo
},
error: function () {
//todo
}
});
3弃鸦、在后端解析參數(shù)時使用Spring的正則表達(dá)式進(jìn)行處理绞吁,如:
@RequestMapping("/device/product/{code:.+}")
public Object searchAll(@PathVariable String code){
//todo
}