kal*_*ari 9 java spring spring-mvc bean-validation
我试图将验证放到Spring Boot项目中.所以我把@NotNull注释放到实体字段中.在控制器中我检查它是这样的:
@RequestMapping(value="", method = RequestMethod.POST)
public DataResponse add(@RequestBody @Valid Status status, BindingResult bindingResult) {
if(bindingResult.hasErrors()) {
return new DataResponse(false, bindingResult.toString());
}
statusService.add(status);
return new DataResponse(true, "");
}
Run Code Online (Sandbox Code Playgroud)
这有效.但是当我使用输入时List<Status> statuses,它不起作用.
@RequestMapping(value="/bulk", method = RequestMethod.POST)
public List<DataResponse> bulkAdd(@RequestBody @Valid List<Status> statuses, BindingResult bindingResult) {
// some code here
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想要的是将add方法中的验证检查应用于请求体列表中的每个Status对象.因此,发件人现在将哪些对象有错,哪些没有.
我怎样才能以简单,快捷的方式做到这一点?
Ame*_*n.M 12
我的直接建议是将List包装在另一个POJO bean中.并将其用作请求体参数.
在你的例子中.
@RequestMapping(value="/bulk", method = RequestMethod.POST)
public List<DataResponse> bulkAdd(@RequestBody @Valid StatusList statusList, BindingResult bindingResult) {
// some code here
}
Run Code Online (Sandbox Code Playgroud)
和StatusList.java将是
@Valid
private List<Status> statuses;
//Getter //Setter //Constructors
Run Code Online (Sandbox Code Playgroud)
我没试过.
更新:此SO链接中 接受的答案提供了一个很好的解释,说明列表不支持bean验证.
| 归档时间: |
|
| 查看次数: |
10854 次 |
| 最近记录: |