【问题标题】:Validating POJO with JSR 303使用 JSR 303 验证 POJO
【发布时间】:2018-08-24 04:20:27
【问题描述】:

我有一个 POJO 如下:

public class ClosureCodeReasonRequest {
    @NotNull(message = MessageConstants.CLOSURE_CODE_BLANK_ERROR)
    @NotBlank(message = MessageConstants.CLOSURE_CODE_BLANK_ERROR)
    private String closureCode;

    @NotNull(message = MessageConstants.REASON_TITLE_BLANK_ERROR)
    @NotBlank(message = MessageConstants.REASON_TITLE_BLANK_ERROR)
    @Size(max = 50, message = MessageConstants.REASON_TITLE_TOO_LONG)
    private String reasonTitle;

    @NotEmpty
    private List<String> programList;

    @NotNull
    @NotBlank
    private String isActive;

    @NotNull
    @NotBlank
    private Long version;
}

在上面的POJO中,isActive的值可以是“true”或“false”,programList的长度可以是1或2,内容在“Test1”和“Test2”之间。

是否有任何内置注释可用于这些要求,还是我必须创建一个新注释?

【问题讨论】:

  • 代码不是private boolean active而不是private String isActive的任何原因? @Size(min = 1, max = 2) private List&lt;String&gt; programList 将适用于第二个要求。 JSR-303 没有任何机制来验证Collection 的内容。您必须编写一个自定义验证器来验证集合内容。

标签: java spring jsr


【解决方案1】:

使用@Pattern怎么样?

对于 isActive 你可以使用@Pattern(regexp="(true|false)") 对于programList,您可以使用@Size(2) 和@Pattern(regexp="(Test1|Test2)?

我没有测试过,但你可以自己做。

【讨论】:

    猜你喜欢
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 2018-08-15
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    相关资源
    最近更新 更多