Spring验证 - NULL或有效的URL

时间:2017-02-04 09:28:34

标签: java spring validation bean-validation jsr

在我的Spring Boot应用程序中,我有以下方法:

Decision create(@NotBlank String name, String url, @NotNull User author);

现在直接在代码中我检查以下条件:

if (!org.apache.commons.lang3.StringUtils.isEmpty(url) && !urlValidator.isValid(url)) {
    throw new IllegalArgumentException("Decision url is not valid");
}

换句话说,url参数可以是null或有效的网址。

是否可以用现有的验证注释替换此代码(例如JSR-303)?

1 个答案:

答案 0 :(得分:0)

Bean Validation规范不包含url的约束,但是一些实现者将该约束添加为像HURnate Validator的@URL这样的扩展,但是请记住使用扩展损坏可移植性,以避免您可以基于正则表达式创建自己的验证器。对于其他部分,您可以将@NotBlank用于url字符串空控件,您将其用于名称字符串,看起来您在@NotNull,@ NotBlank,NotEmpty约束之间存在混淆。

请看一下这个答案:https://stackoverflow.com/a/17137308/5964741

但无论你选择扩展还是创建自己的验证器,对于url字符串的空控制都是多余的。