Ber*_*diz 3 java spring spring-mvc
我有一个REST API控制器,如下面的代码.如果我使用@valid
注释,则控制客户实体的每个字段以进行验证.
@ResponseBody
@RequestMapping(value = API.UPDATE_CLIENT, produces = ResponseType.JSON, method = RequestMethod.POST)
public HashMap update(
@PathVariable(value = "id")int id,
@RequestBody Client clientData
) {
clientLogic.update(id, clientData);
....
}
Run Code Online (Sandbox Code Playgroud)
客户的实体包含大约5个字段(ID,姓名,地址,电子邮件,电话).当我更新此记录时,我不会在RequestBody中发送所有5个字段.我只想验证来自RequestBody.
您可以使用spring @Validated
代替并使用groups
.如果我理解正确,将设置一些值,其他值则不会.所以,问题只在于Null检查.你想暂时允许空值.
public interface NullAllowed {}
Run Code Online (Sandbox Code Playgroud)
NullAllowed
组@Email(groups = NullAllowed.class) //email allows null, so you are good
private String email;
@NotNull //skip this check - not assigned to NullAllowed.class
@Size(min=1, groups = NullAllowed.class)
private String name;
Run Code Online (Sandbox Code Playgroud)
public HashMap update(
@PathVariable(value = "id")int id,
@Validated(NullAllowed.class) @RequestBody Client clientData)
Run Code Online (Sandbox Code Playgroud)
仅验证标记为NullAllowed.class的检查.
看一下这个:
关于组的JSR303文档:http://beanvalidation.org/1.0/spec/#validationapi-validatorapi-groups
归档时间: |
|
查看次数: |
4403 次 |
最近记录: |