Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring验证-空或有效url_Java_Spring_Validation_Bean Validation_Jsr - Fatal编程技术网

Java Spring验证-空或有效url

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

在我的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
或有效的url


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

Bean验证规范不包含url约束,但一些实现者将该约束添加为扩展,如Hibernate Validator的@url,但请记住扩展的使用会损害可移植性,为了避免这种情况,您可以基于正则表达式创建自己的验证器。对于其他部分,您可以将@NotBlank用于url字符串空控件,而您将其用于名称字符串。看起来您对@NotNull、@NotBlank和NotEmpty约束存在混淆

看看这个答案:

但无论您选择扩展还是创建自己的验证程序,url字符串的空控件都是多余的。

只需使用注释即可。可移植性没什么大不了的