spring3 でjsonをPOSTで受け取る
学生時代はフレームワークなんて使ったこと無かったんで初めてフレームワークを利用しててんてこマイ舞いドリームなんですよ、ホント。。。
ちゅーこって、、spring3でこの前引っかかったのでメモ
やりたいこととしては
実行環境
クライアント側
<form id = "searchform" action = "search" method = "POST"> <!--テキストボックスとかチェックボタンとか--> <button id = "searchbtn" type="submit" name = "searchbtn" onclick = "return check()">投げる</button> </form>
function check(){ //テキストボックスの入力チェックとか var jsonString = $('form').serializeArray(); var formData = JSON.stringify(jsonString); $.ajax({ type: 'POST', url: '/prototype/searchUser', data: JSON.stringify(jsonString), contentType: 'application/json', datatype: 'json', scriptCharset: 'utf-8' }).done(function(data){ //返ってきたときの処理 }).fail(function(data){ //返らなかったときの処理 }); } return false;
サーバ側
@ResponseBody @RequestMapping(value = "/search", method = RequestMethod.POST, produces="application/json; charset=UTF-8") public void searchFileInfoJson(@RequestBody String json) throws IOException, ServletException { //処理をあれこれ }
ポイント
- サーバ側 jsonでの受け取りは@RequestBody Stringで!
→自作のクラスを指定してそのパラメータに自動で受け取る方法もあるらしいけどうまくいかなかった
→まぁStringで飛んでくるからこれなら間違いなく受け取ることはできる。。
これが今の僕にできる精一杯でした。
ご査収ください。