ホームページ > 記事 > ウェブフロントエンド > spirngmvc js が複雑な json パラメーターをコントローラーに渡す例
以下に、複雑な json パラメーターをコントローラーに渡す spirngmvc js の例を紹介します。これは優れた参考値であり、皆さんの役に立つことを願っています。
Spring MVC がコレクションリクエストパラメータを受け取るとき、Controller メソッドのコレクションパラメータの前に @RequestBody を追加する必要があります。 @RequestBody によって受け取られるデフォルトの enctype (MIME エンコーディング) は application/json であるため、リクエストメッセージはそのときに設定する必要があります。 POST リクエストのヘッダー情報を送信しないと、Spring MVC はコレクション リクエストのパラメーターを解析するときに、それを自動的に JSON データに変換し、対応するコレクションに解析しません。
次に、Listf7e83be87db5cd2d9a8a0b8117b38cd4、List4c8e0c17c3bd7e0081bb17cc795e1984、Lista06c5c2dfccfdea21bf0b155d9343663>、User[]、User (Bean には 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 Lista06c5c2dfccfdea21bf0b155d9343663> コレクションパラメータ:1. ページ js コード (User オブジェクトは必要ありません):
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<User> userList) { … } }
ユーザー受信 (リストを含む Bean) コレクションパラメーター:
1. ユーザーエンティティクラス:
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 . ページ js コード:
@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveUsers") @ResponseBody public AjaxJson saveUsers(@RequestBody List<Map<String,Object>> listMap) { … } }
3. コントローラーメソッド:
public class User { private String name; private String pwd; private List<User> customers;//属于用户的客户群 //省略getter/setter }
関連記事: Ajax オブジェクトを作成し、複数のブラウザーと互換性を持たせる方法
Ajax テクノロジーを使用して、XMLHttpRequest オブジェクトを通じてホームページのログイン機能を完了する
以上がspirngmvc js が複雑な json パラメーターをコントローラーに渡す例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。