我正在寻找指导方法来验证父管理资源(扩展Spring ResourceSupport类的AdminResource)在子管理模块资源中是否为空(@NotEmpty)(扩展Spring ResourceSupport类的AdminModuleResource)。
我理解AdminResource类还应该实现Serializable接口吗?这是使用Spring ResourceSupport资源的方式吗?
以下是我的资源:
public class AdminResource extends AbstractResource {
private String firstname;
private String lastname;
@NotEmpty
@Email
private String email;
private String password;
private String passwordSalt;
}
public class AdminModuleResource extends AbstractResource {
@NotEmpty
private String module;
@NotEmpty
private AdminResource adminResource;
}
public abstract class AbstractResource extends ResourceSupport {
@JsonProperty("id")
private Long resourceId;
public AbstractResource() {
}
public Long getResourceId() {
return resourceId;
}
public void setResourceId(Long resourceId) {
this.resourceId = resourceId;
}
}
截至目前,@ NotEmpty验证器注释给出了错误:找不到类型的验证器......
但添加"实现Serializable"使用@NotEmpty验证器注释时,资源没有帮助,异常仍然存在。
public abstract class AbstractResource extends ResourceSupport implements Serializable {
}
当然,注释掉@NotEmpty验证器注释会使Maven构建成功。
感谢任何指示提示!
亲切的问候,
的Stephane
答案 0 :(得分:1)
@NotEmpty仅支持CharSequences(String),Collections,Maps和数组。它或者检查字符串或集合/数组是否为空。什么甚至意味着AdminResource不为空。你的意思是@NotNull?
如果对管理员资源拥有@NotEmpty确实在语义上有意义,那么你必须为它实现一个自定义的ConstraintValidator并通过XML注册它(参见http://beanvalidation.org/1.1/spec/#xml-mapping-constraintdefinition)。