如何限制端点中的@RequestParam数组大小?有任何注释吗?
我要寻找的是我最多可以发送5个参数发送请求:
答案 0 :(得分:0)
您需要在服务器代码中进行处理。接受一个请求参数数组并检查大小。我不知道对此有何注释。
答案 1 :(得分:0)
如果调用参数(键)的方式并不重要,则可以将Map<K,V>
用作@RequestParam
在春季之前不可能限制地图条目(对此一无所获)。我也尝试在它周围添加一个包装器,并使用注释@Size对其进行验证,这也是不可能的。
您可以使用的解决方案:在来自请求的Map中创建一个迭代器作为参数,然后将条目添加到新的Map中。
@RequestMapping(value = "/test",method = RequestMethod.GET)
public Object test(@RequestParam Map<String,String> map){
Iterator<Map.Entry<String, String>> entries = map.entrySet().iterator();
int counter = 0; //To limit the parameter
Map<String,String> resultMap = new HashMap<>(); //Our result map which we will return
while (entries.hasNext() && counter < 5) { //iterate over map and stop at five entries
Map.Entry<String, String> entry = entries.next(); //get next entry
resultMap.put(entry.getKey(),entry.getValue()); //Put the entry in our resultMAp
counter++; //count up
}
return resultMap;
}