के बजाय जेएसआर -303 सत्यापनकर्ता का उपयोग करना मेरे पास स्पष्टीकरण के लिए यहां एक बहुत ही बेवकूफ वैचारिक प्रश्न है। मेरे एप्लिकेशन में मैं वर्तमान में @NotBlank और @NotNull एनोटेशन के साथ डोमेन मॉडल मान्य JSR 303 हाइबरनेट सत्यापनकर्ता उपयोग कर रहा हूँ, उपयोगकर्ता नाम, पासवर्ड आदिस्प्रिंग वैलिडेटर
public class Admin {
private Long id;
@NotBlank(message = "Username should not be null")
private String username;
@NotBlank(message = "Username should not be null")
private String password;
...
जाँच की तरह लेकिन मौजूदा उपयोगकर्ता नाम की तरह डोमेन तर्क मान्य के लिए, मैं 'अभी भी वसंत के सत्यापनकर्ता इंटरफ़ेस
@Component
public class AdminValidator implements Validator {
...
@Override
public void validate(Object target, Errors errors) {
Admin admin = (Admin) target;
if (usernameAlradyExist())){
errors.rejectValue("username", null, "This user already exist's in the system.");
}
}
का उपयोग कर हूँ नियंत्रक में मैं दोनों
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(@Valid @ModelAttribute("admin") Admin admin, BindingResult bindingResult,) {
validator.validate(admin, bindingResult);
if (bindingResult.hasErrors()) {
return REGISTER_ADMIN.getViewName();
}
उपयोग कर रहा हूँ क्या यह संभव है बस हाइबरनेट सत्यापनकर्ता उपयोग करने के लिए और नहीं एक डोमेन तर्क को मान्य करने के लिए सभी स्प्रिंग वैलिडेटर का उपयोग नहीं करते हैं?
धन्यवाद, यही वह है जो मैं ढूंढ रहा था :-) – tintin
@ टिनटिन: खुशी है कि मैं मदद कर सकता हूं :) – xyz