JEE6 Bean验证1.0的URL验证程序

时间:2014-03-26 17:42:06

标签: java-ee-6 bean-validation

如何在Beans Validation 1.0中为URL字段创建自定义验证器。 但是如何将通过JSON传递的URL字符串传递给我的约束验证器?

@ValidURL
private URL myUrl;

public class URLValidator implements ConstraintValidator<ValidURL, CharSequence> {...}

@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = {URLValidator.class})
@Constraint(validatedBy = {})
public @interface ValidURL {

    String message() default "must be a valid URL";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

我知道最新的Hibernate Validator有@URL验证,但我无法移动到最新版本。

修改 有了上述内容,我将采取以下措施。所以我的问题是Hibernate如何将URL类型转换为ConstraintValidator使用的CharSequence?

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.net.URL.

1 个答案:

答案 0 :(得分:0)

Doh,刚刚意识到Hibernate验证器@URL用于String类型而不是java.net.URL