这是问题here的后续内容。如何将@Valid
添加到局部变量?
这是来自AuthorizationServer
类的代码:
@NotBlank
private String authorizationServerId;
@Property
@Indexed(unique = true)
@NotBlank
private String authorizationUrl;
@Property(policy = PojomaticPolicy.TO_STRING)
@NotBlank
private String clientAuthorizationUrl;
@NotBlank
private String deviceRootCert;
这是控制器:
byte[] bytes = IOUtils.toByteArray(request.getInputStream());
String signature = authorization.split(":")[1];
ObjectMapper mapper = objectMapper();
AuthorizationServer authorizationServer = mapper.readValue(bytes,
AuthorizationServer.class);
如何针对
authorizationServer
类中声明的注释验证AuthorizationServer
?当我尝试
@Valid
AuthorizationServer authorizationServer = mapper.readValue(bytes, AuthorizationServer.class);
我收到错误
@Valid not applicable to local variable
。 最佳答案
我认为例外说明了一切。 Bean验证不允许验证局部变量。都是通过属性验证来验证类状态,也可以执行方法验证。没有诸如局部变量验证之类的东西。