我有以下控制器方法:
@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 {
...
}
Run Code Online (Sandbox Code Playgroud)
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;
}
...
}
Run Code Online (Sandbox Code Playgroud)
问题是未触发验证,未验证CompanyTag列表,从不调用"StringUUIDValidation"验证器.
如果我删除了List并且只尝试发送一个CompanyTag,即代替:
@RequestBody @Valid List<CompanyTag> categories,
Run Code Online (Sandbox Code Playgroud)
使用:
@RequestBody @Valid CompanyTag category,
Run Code Online (Sandbox Code Playgroud)
它按预期工作,所以显然Spring不喜欢验证事物列表(尝试使用数组,但也没有用).
任何人都知道缺少什么?