0

我正在寻找在子管理模块资源(扩展 Spring ResourceSupport 类的 AdminModuleResource)中验证父管理资源(扩展 Spring ResourceSupport 类的 AdminResource)不为空(@NotEmpty)的指南。

我了解 AdminResource 类也应该实现 Serializable 接口?这是使用 Spring ResourceSupport-ed 资源的方式吗?

这是我的资源:

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 验证器注释给了我错误:No validator could be found for type...

但是将“实现可序列化”添加到资源中并没有帮助,并且在使用 @NotEmpty 验证器注释时仍然存在异常。

public abstract class AbstractResource extends ResourceSupport implements Serializable {
}

当然,注释掉 @NotEmpty 验证器注解会使 Maven 构建成功。

感谢任何方向提示!

亲切的问候,

斯蒂芬妮

4

1 回答 1

1

@NotEmpty 仅支持 CharSequences (String)、Collections、Maps 和数组。它要么检查字符串或集合/数组是否为空。AdminResource 不为空是什么意思。你是说@NotNull 吗?

如果为 AdminResource 使用 @NotEmpty 确实在语义上有意义,则您必须为其实现自定义 ConstraintValidator 并通过 XML 注册它(另请参见http://beanvalidation.org/1.1/spec/#xml-mapping-约束定义)。

于 2014-09-01T15:16:36.633 回答