在我的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)?
答案 0 :(得分:0)
Bean Validation规范不包含url的约束,但是一些实现者将该约束添加为像HURnate Validator的@URL这样的扩展,但是请记住使用扩展损坏可移植性,以避免您可以基于正则表达式创建自己的验证器。对于其他部分,您可以将@NotBlank用于url字符串空控件,您将其用于名称字符串,看起来您在@NotNull,@ NotBlank,NotEmpty约束之间存在混淆。
请看一下这个答案:https://stackoverflow.com/a/17137308/5964741
但无论你选择扩展还是创建自己的验证器,对于url字符串的空控制都是多余的。