相关疑难解决方法(0)

验证Spring中的对象列表

我有以下控制器方法:

@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不喜欢验证事物列表(尝试使用数组,但也没有用).

任何人都知道缺少什么?

java validation spring list

42
推荐指数
10
解决办法
4万
查看次数

标签 统计

java ×1

list ×1

spring ×1

validation ×1