【问题标题】:Adding domain to UrlValidator in apache.commons在 apache.commons 中将域添加到 UrlValidator
【发布时间】:2025-11-28 20:55:01
【问题描述】:
【问题讨论】:
标签:
java
apache
url
apache-commons
url-validation
【解决方案1】:
您可以在下面找到一个 JUnit 测试用例。
import org.apache.commons.validator.routines.DomainValidator;
import org.apache.commons.validator.routines.UrlValidator;
class UrlValidatorTestCase extends TestCase {
private static final String[] GENERIC_TLDS_PLUS = new String[] { "corp" };
static {
DomainValidator.updateTLDOverride(DomainValidator.ArrayType.GENERIC_PLUS, GENERIC_TLDS_PLUS);
}
public void test_UrlValidator_isValid_corp_tld() {
assertTrue(UrlValidator.getInstance().isValid("http://domainlabel.corp"));
}
}
使用 commons-validator 1.6 测试
【解决方案2】:
我最终找到了一种可能的方法,但我没有使用或实施它。当 url 无效时,我将使用 DomainValidator (source) 将其放入另一个检查中。我计划使用 updateTLDOverride 方法,但他们在 v 1.5.0 中有一个错误,其中方法调用的参数使用私有或受保护变量。这在 1.5.1 中已修复,但我使用的是 Maven,并且 repo 仅适用于验证器的 1.5.0 版本。