Spring MVC çerçevesi altında validators yazmayı deniyorum, ancak belgelerde göze çarpan bir ihmal var. Errors nesnesine bir hata iletilirken, yöntemlerin çoğu errorCode adlı bir String parametresi bekler. Bu hata kodları, doğru anladığımda belirli hata iletilerinde destek görevi görür. Ama ben bu kodların haritalandığı yerde yaşamı anlayamıyorum.Bahar MVC doğrulama hata kodları nerede çözümlendi?
Spring MVC'nin Javadoc'undan bahsettiğim şeyin bir örneği burada;
public class UserLoginValidator implements Validator {
private static final int MINIMUM_PASSWORD_LENGTH = 6;
public boolean supports(Class clazz) {
return UserLogin.class.isAssignableFrom(clazz);
}
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "userName", "field.required");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "field.required");
UserLogin login = (UserLogin) target;
if (login.getPassword() != null
&& login.getPassword().trim().length() < MINIMUM_PASSWORD_LENGTH) {
errors.rejectValue("password", "field.min.length",
new Object[]{Integer.valueOf(MINIMUM_PASSWORD_LENGTH)},
"The password must be at least [" + MINIMUM_PASSWORD_LENGTH + "] characters in length.");
}
}
}
Beni aydınlatabilecek biri var mı?
Bilgileriniz için teşekkürler, bu benim doğrulayıcıyı kullanmamı sağlıyor. Ama öğrenmeye ilgi duyduğumda, özel bir MessageCodeResolver'da yeniden yazmak istesem ne yapardım, nereye giderdim? Ayrıca sadece refah için ResourceBundleMessageSource'un javadoc'u http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/context/support/ResourceBundleMessageSource.html adresinde bulunmaktadır. –
Özel bir MessageCodeResolver kullanmak isterseniz, belirli bir denetleyici için bir tane atayabilirsiniz. Bir yaklaşım, daha sonra, burada açıklandığı gibi, tüm denetleyici çekirdeklerinin bir denetleyici fasulye tanımından miras kalması için çekirdek mirasını kullanmaktır: http://forum.springsource.org/showthread.php?t=46336 Şu anda bir yolu yok global olarak özel bir MessageCodeResolver tanımlamak için; Bunun için bir geliştirme isteği var: https://jira.springsource.org/browse/SPR-5187 –
Referans için, global custom 'MessageCodeResolver' özelliği en son olarak, Spring 3.1 (2011) 'de uygulandı. Ayrıca bakınız [SPR-6506] (https://jira.spring.io/browse/SPR-6506). – vallismortis