以下に、複雑な json パラメーターをコントローラーに渡す spirngmvc js の例を紹介します。これは優れた参考値であり、皆さんの役に立つことを願っています。
Spring MVC がコレクションリクエストパラメータを受け取るとき、Controller メソッドのコレクションパラメータの前に @RequestBody を追加する必要があります。 @RequestBody によって受け取られるデフォルトの enctype (MIME エンコーディング) は application/json であるため、リクエストメッセージはそのときに設定する必要があります。 POST リクエストのヘッダー情報を送信しないと、Spring MVC はコレクション リクエストのパラメーターを解析するときに、それを自動的に JSON データに変換し、対応するコレクションに解析しません。
次に、List、List、List
1. ページjsコード:
2. コントローラーメソッド:
var idList = new Array();
idList.push(“1”);
idList.push(“2”);
idList.push(“3”);
var isBatch = false;
$.ajax({
type: "POST",
url: "<%=path%>/catalog.do?fn=deleteCatalogSchemes",
dataType: 'json',
data: {"idList":idList,"isBatch":isBatch},
success: function(data){
…
},
error: function(res){
…
}
});
ログイン後にコピー
受信リスト< ; User>、User[] コレクション パラメータ:
1. ユーザー エンティティ クラス:
@Controller
@RequestMapping("/catalog.do")
public class CatalogController {
@RequestMapping(params = "fn=deleteCatalogSchemes")
@ResponseBody
public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) {
…
}
}
ログイン後にコピー
2. ページ js コード:
りー
3. コントローラーメソッド:
public class User {
private String name;
private String pwd;
//省略getter/setter
}
ログイン後にコピー
User[] 配列を受け取りたい場合は、saveUsers のパラメーターの型を @RequestBody User[] userArray に変更するだけです。
Receive List