【发布时间】:2014-03-26 17:42:05
【问题描述】:
如何在 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.
【问题讨论】:
-
你到底在问什么?您似乎知道如何编写自定义约束。如何从某种 JSON 请求中获取 URL 到 Java 模型中取决于您使用的框架。您在这里没有提供任何有关此的信息。另外,Hibernate Validator 的@URL 约束在 4.x 版本中也是可用的,那为什么不能用呢?