我有类似GET请求
/api/v1/data?name=aaa&name=bbb&name=cccc&name=dd&name....
我想限制“名称”参数的数量,该数量不得超过100(可在属性文件中配置)
这是我的控制人
public Data getDataByNames(@RequestParam(value = "name") List<String> names) {
return userService.getDataByNames(names);
}
我该怎么做?谢谢
更新:是的,我可以检入服务层: if(names.size()<100){...}但似乎不专业
答案 0 :(得分:0)
如果不需要最大数量的元素即可配置,则可以使用注释@Size。 步骤1.为您的请求参数定义包装器
public class NameWrapper {
@Size(max = 100)
@NotEmpty
private List<String> name;
//getters and setters
}
步骤2。将包装器作为参数添加到控制器方法中
public Data getDataByNames(@Valid NameWrapper nameWrapper) {
如果要通过应用程序属性进行配置,则应定义自己的自定义参数解析器。