Written with StackEdit.
请求参数Map泛型的V为什么是数组
笔记(190430 06:16)
发送请求
我们发送了一个get请求
注意: 有两个pageNum参数
http://localhost:8881/api/study/java/frameList?pageNum=1&pageNum=22&pageSize=8
后台代码
@GetMapping(value="/frameList")
public PageData list(HttpServletRequest req)throws Exception{
Map<String, String[]> map = req.getParameterMap();
for (Iterator<String> it = map.keySet().iterator(); it.hasNext(); ) {
String next = it.next();
System.out.println(Arrays.toString(map.get(next)));
}
控制台打印
[1, 22]
[8]
后台代码V2
@GetMapping(value="/frameList")
public PageData list(HttpServletRequest req)throws Exception{
for(Enumeration<String> names= req.getParameterNames(); names.hasMoreElements();){
String name = names.nextElement();
System.out.println(name+"------"+req.getParameter(name));
}
控制台打印V2
pageNum------1
pageSize------8
结论
url的参数允许相同的参数名, 用getParameterMap() 可以获取到重名的参数值,
但是用getParameter(name) 只能获取到第一个,
所以可以考虑使用getParameterValues() , 判断一下length