【问题标题】:URL validator for JEE6 Beans Validation 1.0JEE6 Beans Validation 1.0 的 URL 验证器
【发布时间】: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 版本中也是可用的,那为什么不能用呢?

标签: java-ee-6 bean-validation


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多