2014-03-26 63 views
0

如何爲Beans驗證1.0中的URL字段創建自定義驗證器。 但是,我怎樣才能將通過JSON傳遞的URL字符串傳遞給我的約束驗證器?JEE6 Beans驗證1.0的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驗證具有@URL驗證,但我不能移動到最新版本。

編輯: 隨着上述我點擊以下。所以我的問題是Hibernate如何將URL類型轉換爲ConstraintValidator使用的CharSequence?

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

什麼是你其實是問?你似乎知道如何編寫自定義約束。如何從某種類型的JSON請求中將您的URL導入Java模型將取決於您使用的框架。這裏沒有提供任何關於此的信息。另外,Hibernate Validator的@URL約束也可以在4.x版本中使用,那麼爲什麼你不能使用它? – Hardy

回答

0

衛生署,就實現了Hibernate驗證@URL爲字符串類型不java.net.URL中