在SpringMVC中接收Get请求一般使用的是@GetMapping+@RequestParam或者@GetMapping+@PathVariable。下面举例一下使用List作为参数传递的时候容易忽略的点
1.定义一个Get请求接口
@RestController
@RequestMapping("/provider")
public class ProviderTest {
@GetMapping("/send")
public String send(@RequestParam("classRoom") String classRoom,
@RequestParam("studentList") List<String> studentList) {
StringBuilder builder = new StringBuilder();
builder.append(classRoom).append(":");
studentList.forEach(builder::append);
return builder.toString();
}
}
2.在ApiFox模拟发送请求,出现错误的情况List参数携带了下标,@RequestParam无法识别
3.正确的传参方式不带下标传递
4.List作为参数也可以前端用字符串"JACK,ROSE"的形式来传递,后端使用String类型来接收参数,用split方法来分割。或者使用POST请求,用@PostMapping+@RequestBody来接收。
@GetMapping("/send")
public String send(@RequestParam("classRoom") String classRoom,
@RequestParam("studentList") String studentList) {
StringBuilder builder = new StringBuilder();
builder.append(classRoom).append(":");
if (!studentList.isBlank()) {
String[] stuList = studentList.split(",");
for (String s : stuList) {
builder.append(s);
}
}
return builder.toString();
}