Java Spring验证-空或有效url
在我的Spring Boot应用程序中,我有以下方法:Java Spring验证-空或有效url,java,spring,validation,bean-validation,jsr,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 IllegalArgumentExce
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
或有效的url
是否可以用现有的验证注释(例如JSR-303)替换此代码?Bean验证规范不包含url约束,但一些实现者将该约束添加为扩展,如Hibernate Validator的@url,但请记住扩展的使用会损害可移植性,为了避免这种情况,您可以基于正则表达式创建自己的验证器。对于其他部分,您可以将@NotBlank用于url字符串空控件,而您将其用于名称字符串。看起来您对@NotNull、@NotBlank和NotEmpty约束存在混淆 看看这个答案: 但无论您选择扩展还是创建自己的验证程序,url字符串的空控件都是多余的。只需使用注释即可。可移植性没什么大不了的