Spring 验证不适用于通用类型
Spring Validation Doesn't Work With Generic Types
在我的代码块中,我只想使用 Spring boot @Valid 批注为通用 Pair 对象验证控制器方法。但是验证对我不起作用。
我的控制器方法如下所示:
@RequestMapping(method = RequestMethod.POST, consumes = "application/json")
public void add(@RequestBody @Valid Pair<AddDto, AddUserDto> pair)
{
...
service.add(pair);
}
Pair 对象看起来像:
public class Pair<F, S>
{
private F first;
private S second;
}
AddDto 对象看起来像:
public class AddDto
{
@NotNull
private String name;
@NotEmpty
private List<String> actionList;
...getters, setters
}
AddUserDto 对象看起来像:
public class AddUserDto
{
@NotNull
private String name;
@NotNull
private Long id;
...getters, setters
}
在这种情况下,验证对我不起作用。有什么建议吗?
与泛型无关。问题是 Pair class 没有定义任何验证规则。尝试将其更改为:
public class Pair<F, S>
{
@Valid
@NotNull
private F first;
@Valid
@NotNull
private S second;
}
在我的代码块中,我只想使用 Spring boot @Valid 批注为通用 Pair 对象验证控制器方法。但是验证对我不起作用。
我的控制器方法如下所示:
@RequestMapping(method = RequestMethod.POST, consumes = "application/json")
public void add(@RequestBody @Valid Pair<AddDto, AddUserDto> pair)
{
...
service.add(pair);
}
Pair 对象看起来像:
public class Pair<F, S>
{
private F first;
private S second;
}
AddDto 对象看起来像:
public class AddDto
{
@NotNull
private String name;
@NotEmpty
private List<String> actionList;
...getters, setters
}
AddUserDto 对象看起来像:
public class AddUserDto
{
@NotNull
private String name;
@NotNull
private Long id;
...getters, setters
}
在这种情况下,验证对我不起作用。有什么建议吗?
与泛型无关。问题是 Pair class 没有定义任何验证规则。尝试将其更改为:
public class Pair<F, S>
{
@Valid
@NotNull
private F first;
@Valid
@NotNull
private S second;
}