2016-05-19 8 views
8

Bir java web uygulamasında giriş parametrelerini doğrulamak için @UUID (veya benzeri) ek açıklama bulamıyorum. BenUuid doğrulayıcı ek açıklama var mı?

  1. javax.validation.constraints bugüne kadar baktım
  2. org.hibernate.validator.constraints
+0

: Sen tekrarından kaçınmak için bazı statik nihai alanında deseni koyabilirsiniz

@Pattern(regexp = SomeUtilClass.UUID_PATTERN, message = "TokenFormatError") private String token; 

: Bunu gerekirse, ben sadece böyle bir şey kullanmak öneriyoruz * @ RestController ** son nokta o zaman daha kolay olduğunu düşünüyorum sadece java.util.UUID ** türü bekliyoruz. HTTP talebinden geçerli UUID değerine eşlemek mümkün değilse, bu durumda istek reddedilir :) –

cevap

12

evet ettik

,

@Target(ElementType.FIELD) 
@Constraint(validatedBy={}) 
@Retention(RUNTIME) 
@Pattern(regexp="^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$") 
public @interface UUID { 
    String message() default "{invalid.uuid}"; 
    Class<?>[] groups() default {}; 
    Class<? extends Payload>[] payload() default {}; 
} 
+2

Teşekkür ederim @ Jaiwo99 Uuid'lerin yeterince ortak olduğunu ve böylece kütüphanelere zaten dahil olduğunu umuyorum. tekerleği yeniden icat etmeye ihtiyacım var ... –

4
kendiniz kurmak

Jaiwo99'dan gelen çözüm işe yarıyor, ancak dışarıdan özel bir mesaj ayarlayamadım. @Pattern'dan mesaj). * Üzerinde doğrulama yapmak istiyorsanız

public static SomeUtilClass { 
    public static final String UUID_PATTERN = "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$"; 
}