Bazı JSR-303 doğrulayıcı açıklama ile model bir nesne yapmak:@ bahar mvc'de yinelemeli olarak alanlarla ilgili Ek açıklamaları kontrol edebilir mi?
public class UserInfoBasicModel implements Serializable{
@NotNull(message="cannot be null")
@NotEmpty(message="cannot be empty")
private String name;
//getter and setter
//..ignored..
}
Otomatik bir kontrolöre veri bağlama:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(method = RequestMethod.POST, value = "/registry/")
public String registry(HttpServletRequest request,
ModelMap modelMap,
@Valid UserInfoBasicModel userInfoBasicModel,
BindingResult result) {
//...some code here...
}
}
Yukarıdaki senaryoda, doğrulama için iyi çalışır. Sadece aşağıdaki gibi başka bir nesne içinde bir model saklanması Fakat UserInfoBasicModel üzerinde doğrulama artık çalışmıyor:
UserInfoBasicModel nesnesi kapsüller Nesne:
public static class UserUpdateFormTransmitter {
@Valid
private UserInfoBasicModel userInfoBasicModel;
//getter and setter
//..ignored..
}
kontrolör:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(method = RequestMethod.POST, value = "/registry/")
public String registry(HttpServletRequest request,
ModelMap modelMap,
@Valid UserUpdateFormTransmitter userUpdateFormTransmitter,
BindingResult result) {
//...some code here...
}
}
@id annotaion neden yinelemeli olarak çalışmıyorum merak ediyorum ne gibi JSR 303: Bean Validation söyler. Herhangi biri bana bir çözüm verir, böylece nesneyi yinelemeli olarak geçerli olabilir, çok teşekkürler !!
Belki ikinci geçerli atlanabilir? İlk Valid, tüm model boyunca kademelendirilmelidir. – tstorms
İlkbahar 3.2.4.RELEASE ile çok benzer bir şey yapıyorum ve '@ Valid'' i ekleyerek 'UserUpdateFormTransmitter' içindeki' userInfoBasicModel 'değerine eşdeğimi ekledim. Bu olmadan, iç içe doğrulama onaylandı. –