如何验证JPA实体的网站URL字段?

时间:2017-08-30 21:23:14

标签: java hibernate validation bean-validation

我有一个代表公司的JPA实体。它有一个代表公司网站URL的字段。我需要在保留之前验证URL是否是有效的网站URL。我想只有以http或https开头的网址才是有效的网站网址。我该如何强制执行此操作?我使用的是最新版本。 Hibernate的版本作为我的JPA提供者。

2 个答案:

答案 0 :(得分:2)

@dimitrisli建议你一个正确的解决方案。您应该使用@URL约束。如果您想允许特定协议 - 此约束有protocol属性:

@URL(protocol = "http")
private String companyUrl;

此外,还有regexp属性,您可以使用该属性使您的网址与您喜欢的任何模式相匹配。

    @URL(regexp = "^(http|ftp)")
    private String companyUrl;

您可以在doc中查看更多详细信息(在链接部分查找网址)。

此外,如果您想使用URL而不是String,您可以为URL类和URL约束编写自己的验证器实现,但请注意您是否&# 39; d尝试创建无效的URL,它将在创建过程中失败,而不是在验证时失败。因此,只有在您想要检查协议及类似内容时,为URL编写验证器才有意义。

要编写自己的验证器,您需要实现

public class URLValidator implements ConstraintValidator<org.hibernate.validator.constraints.URL, URL> {
...
}

有关详细信息,请查看this博文。

答案 1 :(得分:0)

查看Hibernate Validator的@URL注释。