Bu gibi basit bir dersim var,Hazırda bekleyen doğrulayıcıda özel hata iletileri nasıl eklenir?
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
public class Form implements Serializable {
@NotNull
@Length(min = 2, max = 20)
private String lastName;
}
Sınıfında dosyam var. Daha sonra aşağıdaki gibi, Bahar fasulye ile yüklenir,
<bean name="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
<property name="validationMessageSource">
<ref bean="resourceBundleLocator"/>
</property>
</bean>
<bean name="resourceBundleLocator" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath*:messages.properties</value>
</list>
</property>
</bean>
Tek istediğim fasülyeye göre özelleştirilmiş hata mesajları almak. Diğer bir deyişle, her ConstraintViolation nesnesinin, varsayılan dosya yerine özellik dosyamda tanımladığım hata iletisini döndürmesini istiyorum. Bu özelliğe {xxx.yyyy.zzzz} biçiminde bir değer eklemek ve bu iletiyi messages.properties dosyasından göndermek mümkün mü?
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<Form>> inputErrors = validator.validate(form);
@NotNull ve @Length için varsayılan mesajı özelleştirmek isterseniz, bunu nasıl yapabilirim?
Hazırda bekletme doğrulamasındaki deneyimim sıfır, Herhangi bir örnek kod veya adım adım adımı takdir edilecektir.
Evet fritz, (bu doğru, ama ben pek @NotNull çünkü varsayılan messageTemplate yolu geçersiz kılmak istemiyorum ve Tabii ki diğer notlarım) Form sınıfımda. Her özellik için belirli hata iletileri eklemek istiyorum. Özel MessageInterpolator'ı uygulamadan ** kolay bir yol var mı? Özel mesaj görüşme uygulamalarının bir çift buldum, ama bunların hiçbirini anlamadım. Bana tam kaynak kodu ile mümkün olan en basit çözümü verebilirsen! – nash
ve ayrıca bu {vvvv.ssss.rrrt.message} gibi bir biçim ile her bir doğrulama ek açıklama üste mesaj özniteliği çalıştı ama ConstraintViolation arasında getMessage çağrıldığında bunun, ileti olduğu gibi yazdırıldığı. – nash
Görüyorum! aklıma gelen tek yol, bir mesaj tutan özel bir doğrulayıcı oluşturmaktır! @MyNotNull + mesajı gibi ?! veya böyle bir şey yapabilirdiniz ' ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); Araba = yeni Araba (boş); Seti> constraintViolations = validator.validate (araba); assertEquals (1, restrictViolations.size()); assertEquals ("null olmayabilir", constraintViolations.iterator(). Next(). GetMessage()); ' ve iletide nesneyi durdurun! –
stereoscope