Spring MVCがコレクションリクエストパラメータを受信する場合、Controllerメソッドのコレクションパラメータの前に@RequestBodyを追加する必要があります。@RequestBodyで受信するデフォルトのenctype(MIMEエンコーディング)はapplication/jsonであるため、送信時にリクエストヘッダを設定する必要があります。そうしないと、Spring MVC は、コレクション リクエストのパラメーターを解析するときに、それを JSON データに自動的に変換し、対応するコレクションに解析しません。
次に、List
1、ページ JS コード:
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){ … } });
2、コントローラー メソッド:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=deleteCatalogSchemes") @ResponseBody public AjaxJson deleteCatalogSchemes(@RequestParam("idList[]") List<String> idList,Boolean isBatch) { … } }
Receive List
1、ユーザー エンティティ クラス:
public class User { private String name; private String pwd; //省略getter/setter }
2、ページ js コード:
var userList = new Array(); userList.push({name: "李四",pwd: "123"}); userList.push({name: "张三",pwd: "332"}); $.ajax({ type: "POST", url: "<%=path%>/catalog.do?fn=saveUsers", data: JSON.stringify(userList),//将对象序列化成JSON字符串 dataType:"json", contentType : 'application/json;charset=utf-8', //设置请求头信息 success: function(data){ … }, error: function(res){ … } });
3. コントローラー メソッド:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody List<User> userList) { … } }
User[] 配列を受け取りたい場合は、saveUsers のパラメーターの型を @RequestBody User[] userArray に変更するだけです。
Receive List
1. ページ js コード (ユーザー オブジェクトは必要ありません):
var userList = new Array(); userList.push({name: "李四",pwd: "123"}); userList.push({name: "张三",pwd: "332"}); $.ajax({ type: "POST", url: "<%=path%>/catalog.do?fn=saveUsers", data: JSON.stringify(userList),//将对象序列化成JSON字符串 dataType:"json", contentType : 'application/json;charset=utf-8', //设置请求头信息 success: function(data){ … }, error: function(res){ … } });
2. コントローラー メソッド:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) { … } }
ユーザーを受信します (Bean にはリストが含まれます)パラメーター:
1、ユーザー エンティティ クラス:
public class User { private String name; private String pwd; private List<User> customers;//属于用户的客户群 //省略getter/setter }
2、ページ JS コード:
var customerArray = new Array(); customerArray.push({name: "李四",pwd: "123"}); customerArray.push({name: "张三",pwd: "332"}); var user = {}; user.name = "李刚"; user.pwd = "888"; user. customers = customerArray; $.ajax({ type: "POST", url: "<%=path%>/catalog.do?fn=saveUsers", data: JSON.stringify(user),//将对象序列化成JSON字符串 dataType:"json", contentType : 'application/json;charset=utf-8', //设置请求头信息 success: function(data){ … }, error: function(res){ … } });
3、コントローラー メソッド:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody User user) { List<User> customers = user.getCustomers(); … } }
関連推奨事項: MVC でコントローラー、URL、アクションを取得するための
以上がjs は複雑な json パラメーターをコントローラーに渡すことを実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。