我有以下控制器方法:
@RequestMapping(value="/map/update", method=RequestMethod.POST, produces = "application/json; charset=utf-8")
@ResponseBody
public ResponseEntityWrapper updateMapTheme(
HttpServletRequest request,
@RequestBody @Valid List<CompanyTag> categories,
HttpServletResponse response
) throws ResourceNotFoundException, AuthorizationException {
...
}
CompanyTag 是这样定义的:
public class CompanyTag {
@StringUUIDValidation String key;
String value;
String color;
String icon;
Icon iconObj;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
...
}
问题是验证没有被触发,CompanyTag 列表没有被验证,“ StringUUIDValization”验证器从未被调用。
如果我删除了 List 并且只尝试发送一个 CompanyTag,也就是说:
@RequestBody @Valid List<CompanyTag> categories,
用途:
@RequestBody @Valid CompanyTag category,
它像预期的那样工作,所以很明显 Spring 不喜欢验证事物列表(尝试使用 array 代替,也没有工作)。
有人知道少了什么吗?