一.key-value形式的简单参数
1.前端:key1=v1&key2=v2
2.后端
1.Servlet原生方式
2.request.getParameter("key")
// 使用原生请求对象接受
@RequestMapping("test1")
public String test1(HttpServletRequest request){
String username = request.getParameter("username");
System.out.println(username);
return "success";
}
2.SpringBoot方式
1.controller的形参和请求参数名保持一致即可
2.@RequestParam:不一致手动映射
// 使用SpringMVC接受普通参数
@RequestMapping("test2")
public String test2(@RequestParam("username1") String username,
@RequestParam("password2") String password,
@RequestParam("age3") Integer age){
System.out.println(username+"---"+password+"---"+age);
return "success";
}
二.实体参数
1.前端:key1=v1&key2=v2
2.后端
1.自定义Bean,bean的属性名与参数名保持一致
2.public class Bean{ private String key1; private String key2; }
// 使用SpringMVC接受对象
@RequestMapping("test3")
public String test3(User user){
System.out.println(user);
return "success";
}
三.复杂实体对象
1.前端:key1=v1&key2=v2&key3.key4=v3
2.后端
1.请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套实体类属性参数
1.public class Bean{ private String key1; private String key2; private Bean2 key3; } 2.public class Bean2{ private String key4; }
// 使用SpringMVC接受对象嵌套
@RequestMapping("test4")
public String test4(User user){
System.out.println(user);
return "success";
}
四.数组集合参数
1.前端
1.key=v1&key=v2
2.key=v1,v2
2.后端
1.数组
1.请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数
2.String[] key
// 使用SpringMVC接受数组
@RequestMapping("test5")
public String test5(String[] hobby){
System.out.println(Arrays.toString(hobby));
return "success";
}
2.list
1.@RequestParam
2.@RequestParam("hobby") List<String> hobby
// 使用SpringMVC接受集合
@RequestMapping("test6")
public String test6(@RequestParam List<String> hobby){
System.out.println(hobby);
return "success";
}
五.日期参数
1.前端:key=2022-12-12 10:05:45
2.后端:@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
// 使用SpringMVC接受集合
@RequestMapping("test7")
public String test7(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate birthday){
System.out.println(birthday);
return "success";
}
六.json参数
1.前端
1.{ “name”:"zhangsan", "age":20 }
2.Content-Type:application/json
3.POST
2.后端
1.@RequestBody
2.public class User{ private Strign name; private Integer age; }
// 使用SpringMVC接受json对象--对象
@RequestMapping( "test9")
public String test9(@RequestBody User user){
System.out.println(user);
return "success";
}
七.路径参数
1.前端
1.http://localhost:8080/user/1
2.后端
1.使用{…}来标识该路径参数,需要使用@PathVariable获取路径参数
2.@GetMapping("/user/{id}") @PathVariable("id") Long id;
// 使用SpringMVC接受路径参数
@RequestMapping( "test10/{id}/{name}")
public String test10(@PathVariable("id") Integer number,@PathVariable("name") String name){
System.out.println(number);
System.out.println(name);
return "success";
}
八.文件参数
1.前端
1. POST
2.Content-Type:multipart/form-data;
3.boundary=-----12121212
4.file
2.后端
1.MultipartFile
2.@RequestRaram或者@RequestPart对应参数名
@PostMapping("/test12")
public String test12(@RequestParam("myFile") MultipartFile myFile) {
return myFile.getOriginalFilename() + "=" + myFile.getSize();
}