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 次 |
| 最近记录: |