目录
1. 基本类型参数
方式一:
代码:
@RequestMapping("/save2")
@ResponseBody
public void save2(String name,Integer age){
System.out.println("姓名:"+name+",年龄:"+age);
}
浏览器输入:
http://localhost/save2?name=zhaung&age=12
注意:参数名和处理器方法形参名保持一致
方式二:
@RequestMapping("/save3")
@ResponseBody
public void save3(@RequestParam(name="username",
required = true,
defaultValue = "itheima") String name){
System.out.println("姓名:"+name);
}
//解析:
//value:参数名
//required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
//defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
//浏览器中输入地址
http://localhost/save3 //结果:zhangsan
http://localhost/sava3?username="lisi" //结果:list
2. pojo类型参数
1. 简单类型:
public class User {
private String username;
private int age;
//get方法 略
//set方法 略
}
@RequestMapping("/save4")
@ResponseBody
public void save4(User user){
System.out.println("姓名:"+user.getUsername()+",年龄:"+user.getAge());
}
浏览器中输入
http://localhost/save4?username=zhaung&age=12
注意:参数名称要和pojo 属性名要保持一致,会自动的封装的到这个实体类中。
2.pojo对象属性
public class User {
private String username;
private int age;
private Address address;
//getxxx(),setxxx()方法略
}
@RequestMapping("/save4")
@ResponseBody
public void save4(User user){
System.out.println(user.getAddress().getName());
}
浏览器
http://localhost/save4?address.name=beijing
3.pojo出现list
public class User {
private String username;
private int age;
private List<Address> address;
setxxx(),getxxx()方法
}
@RequestMapping("/save4")
@ResponseBody
public void save4(User user){
System.out.println(user.getAddress());
}
浏览器
http://localhost/save4?address[0].name=zhangsan&address[1].name=beijing
结果:[Address{name='zhangsan', city='null', address='null'},
Address{name='beijing', city='null', address='null'}]
4.pojo中出现map
public class User {
private String username;
private int age;
private Map<String,Address> addressMap;
getxxx(),setxxx() 省略
}
@RequestMapping("/save4")
@ResponseBody
public void save4(User user){
System.out.println(user.getAddress());
}
浏览器输入地址:
http://localhost/save4?addressMap[%27num1%27].name=beijing&address[%27num2%27].name=nanjing
3. 数组类型参数
@RequestMapping("/save5")
@ResponseBody
public void save4(String arg[]){
System.out.println(Arrays.asList(arg));
}
浏览器中输入地址
http://localhost/save5?arg=111&arg=222&arg=333
4. 集合类型参数
普通的list
@RequestMapping("/save6")
@ResponseBody
public void save6(@RequestParam("nick") List<String> nick){
System.out.println(nick);
}
浏览中
http://localhost/save6?nick=111&nick=222&nick=333
结果:
[111, 222, 333]
封装的对象的list
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/save8" method="post">
<input type="text" name="userList[0].username"><br>
<input type="text" name="userList[0].age"><br>
<input type="text" name="userList[1].username"><br>
<input type="text" name="userList[1].age"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
public class Vo {
private List<User> userList;
public Vo() {
}
getxxx(),setxxx()省略
}
@RequestMapping("/save8")
@ResponseBody
public void save8(Vo vo){
System.out.println(vo);
}
}
5. json传递数据
//前端
<script src="${pageContext.request.contextPath}/js/jquery-3.3.1.min.js"></script>
<script>
var userList=new Array();
userList.push({username:"zhangdan",age:18});
userList.push({username:"zww",age:12});
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/save9",
data: JSON.stringify(userList),
contentType:"application/json;charset=utf-8"
})
</script>
//java 代码
@RequestMapping("/save9")
@ResponseBody
public void save9(@RequestBody List<User> userList){
System.out.println(userList);
}
//结果:
[User{
username='zhangdan',
age=18,
addressMap=null
},
User{
username='zww',
age=12,
addressMap=null
}]