這個小問題還是困擾了我:springmvc無法正確接收前端傳來的引數。而網上的博文解決方法參差不齊或者是有些點忽略了沒講,於是我整理了一下各種形式的解決方法。1.這個測試內容很簡單,就是前端直接傳來form-data形式,json形式的字串,看看後端接受的結果如何。
2.要善於f12除錯工具(谷歌瀏覽器),檢視究竟前端傳出去的資料形式是什麼。
3.由於本人對前端一無所知,於是只能用上jqery來簡單模擬了。
1.前端**:只傳乙個username
$(".submit").click(function
(); $.ajax(
});});
2.後端**:(@requestparam 指定需要username引數)
@responsebody
public string testform(@requestparam string username)
3.結果:成功
(1)前端傳送:
(2)後端成功輸出test並且成功返回success字元
1.前端**:username和乙個陣列
$(".submit").click(function
(); $.ajax(
});});
2.後端**:(即使把data換成int結果也是一樣)
"/testform", method = requestmethod.post, produces =
@responsebody
public
string testform(@requestparam string username, @requestparam list
<
integer
>
data)
3結果:失敗
(1)報錯:400 bad request
(2)那麼前端傳送的是什麼呢?
可以看到,這是把data拆分了傳送,這肯定是不想要的。我們使用傳遞json形式的字串來傳遞
1.要實現這個功能,後端必須提前做一些準備
步驟說明
引入jackson依賴
為了支援能從前端接受json格式的字串並自動讓spring將資料繫結到我們的引數中
引數使用@requestbody標明引數
至於引數,可以使用map來接收:
"/testmap", method = requestmethod.post, produces =
@responsebody
public
string testmap(@requestbody map
<
string , object>
data)
return
"success";
}也可以自定義dto來接收,注意屬性名字和傳來的鍵名字應該一樣:
public
class testdto
public
void
setdata(int data)
public string getusername()
public
void
setusername(string username)
@override
public string tostring() ';}}
@responsebody
public string testdto(@requestbody testdto testdto)
2.前端也要做出改變
步驟說明
表明傳送json
使用json.stringify()
將資料格式化為json的格式
$(".submit").click(function
(); $.ajax(
});});
3.測試
(1)將上述url分別改為·/estmap,/testdto
,結果都是成功
1.上面都是以鍵值對的形式來傳,那麼如果單純傳乙個陣列呢,那就更簡單了。
2.普通陣列
(1)前端
$(".submit").click(function
() });
});
(2)後端
@responsebody
public string testintarray(@requestbody int array)
(3)結果肯定是成功的!
3.物件陣列(考慮乙個user物件,具有username和password兩個資料域)
(1)前端:
$(".submit").click(function
(), ];
$.ajax(
});});
(2)後端:
@responsebody
public string testuserarray(@requestbody user array)
(3)結果當然是成功啦!user物件也可以成功繫結到引數中了!
踏上前端路
前端路 啟程 今天內容不在於分享前段知識,而在於我現在對前端路的一些感觸。想想其實也很可笑,這個的賬號已經建立了2個月,而今天是第一次寫部落格。不知道當初建立賬號是為了應付,還是什麼。但是今天開始寫這個微博我覺得自己不能再以應付的心對待前段,我不能將我對前段的熱情被 應付 兩字所泯滅。必須回歸夢想的...
《當阿呆遇上阿瓜》 當鐵鍬遇上石頭
該片是金 凱瑞成名之前在1994年給影迷奉獻的搞怪喜劇片 阿呆與阿瓜 的續集,說是續集,其實是前傳。新線公司讓我們足足等了10年才看到續集,然而此時影片的主創人員全部更換。少了金 凱瑞,似乎再沒有理由讓我們更期待看到這部影片。可別說筆者心態不正,筆者之所以看此片僅僅因為想看看新線公司是如何挖這塊金礦...
當技術遇上管理
哈佛商學院教授戴維 蓋兒文總結說過 我們的時間應該花在設計和除bug上,而不是不停地與上司打交道,或者監督別人的工作。作為乙個技術人員管理者,要麼你的技術能力徹底讓人信服,要麼你的想法與綜合能力高人一籌,而且還得顯得比手下的人要忙,不然誰心甘情願服從你的安排。很不巧,國內大多數公司裡,有些人的存在,...