SpingMvc复杂参数传收总结
作者:KenDoEverthing
引言
上一篇文章[javaWeb传收参数方式总结]总结了简单传收参数,这一篇讲如何传收复杂参数
比如Long[] 、User(bean里面包含List)、User[]、List<User><user style="margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word !important; box-sizing: border-box;">、List<Map<String,Object>等几种复杂参数</user>。
简单数组集合类
比如Long[],String[],List<User><long style="margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word !important; box-sizing: border-box;">等</long>
1.重复单个参数
前端
//(1)普通
http://localhost:8080/ajaxGet?id=1&id=2&id=3
//(2)Ajaxget方式 发送请求时等于(1)方式 $.ajax({ type: "GET", url: "http://localhost:8080/ajaxGet?id=1&id=2&id=3" });
//(3)Form表单GET方式 发送请求时等于(1)方式 <form id="fromGet" action="fromGet" method="GET"> <input type="text"name="id" value="1"> <input type="text"name="id" value="2"> <input type="text"name="id" value="3"> </form>
//(4)Form表单POST方式 //发送请求参数会被拼接成 id=1&id=2&id=3 存储在请求体中 <form id="fromGet" action="fromGet" method="POST"> <input type="text"name="id" value="1"> <input type="text"name="id" value="2"> <input type="text"name="id" value="3"> </form>
后端SpringMvc:
//数组 public void ajaxGet(Long[] id){ }
//List集合 public void ajaxGet(@RequestParam("id") List<Long> id){ }
2.数组参数
前端:
//(1)普通url
http://localhost:8080/ajaxGet?id[]=1&id[]=2&id[]=3
//2.Form GET方式(Ajax异步表单提交) 发送请求时等于(1)方式 $.ajax({ type: "GET", url: "http://localhost:8080/ajaxGet", data: {"id":[1,2,3]}, contentType:'application/x-www-form-urlencoded' });
//(3)Form POST方式(Ajax异步表单提交) //发送请求参数会被拼接成 id[]=1&id[]=2&id[]=3 存储在请求体中 $.ajax({ type: "POST", url: "http://localhost:8080/ajaxPost", data: {"id":[1,2,3]}, contentType:'application/x-www-form-urlencoded' });
后端SpringMvc:
//数组 public void ajaxGet(@RequestParam("id[]") Long[] id){ }
//List集合 public void ajaxGet(@RequestParam("id[]") List<Long> id){ }
其实以上两种都是一个道理,主要是看发送请求时 参数是id还是id[](可使用浏览器的F12开发者工具查看network请求),来决定后端使不使用@RequestParam("id[]")进行数据绑定
复杂实体类与集合
比如User(bean里面包含List)、User[]、List<User><user style="margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word !important; box-sizing: border-box;">、List<Map<String,Object>等,此种类型均使用Json提交</user>
1.复杂实体类User
User实体类
//User实体类 public class User { private String name; private String pwd; private List<User> customers;//属于用户的客户群 //省略getter/setter }
前端:
//用户 var user = {}; user.name = "李刚"; user.pwd = "888"; //客户 var customerArray = new Array(); customerArray.push({name: "李四",pwd: "123"}); customerArray.push({name: "张三",pwd: "332"}); user. customers = customerArray; $.ajax({ type: "POST", url: "http://localhost:8080/ajaxPost", data: JSON.stringify(user), contentType:'application/json;charset=utf-8' });
后端SpringMvc:
public void ajaxPost(@ResponBody User user){ }
前端:
//用户 var userList = new Array(); userList.push({name: "李四",pwd: "123"}); userList.push({name: "张三",pwd: "332"}); $.ajax({ type: "POST", url: "http://localhost:8080/ajaxPost", data: JSON.stringify(userList), contentType:'application/json;charset=utf-8' });
后端SpringMvc:
public void ajaxPost(@ResponBody User[] user){ }
public void ajaxPost(@ResponBody List<User> user){ }
public void ajaxPost(@ResponBody List<Map<String,Object>> userMap){ }
以上就是SpingMvc复杂参数传收总结的详细内容,更多关于SpingMvc复杂参数传收的资料请关注脚本之家其它相关文章!