Я пишу приложение со средой Spring, и у меня есть вопрос, как выполнить проверку формы с дополнительными полями.
Я новичок в этом, но насколько я понимаю, чтобы заполнить форму с помощьюform: form tag Я устанавливаю атрибут с помощью
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String register(Model model) {
model.addAttribute("tenant", new Tenant());
return "register";
}
Затем создайте класс валидатора и используйте его для запроса POST:
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String registerPost(@ModelAttribute("tenant") Tenant tenant,
Model model,
BindingResult result) {
TenantValidator validator = new TenantValidator();
validator.validate(tenant, result);
if (result.hasErrors()) {
return "register";
}
tenantService.save(tenant);
return "redirect:accountOverview";
}
Он работает очень хорошо, и я восхищен тем, насколько это удобноis!
Единственная проблема - что мне делать с дополнительными полями?Например, у меня есть поле «повторить пароль».Если я создаю дополнительные поля без использования тегов, а также используя и проверяю их напрямую, я не смог бы использовать:
<form:errors path="repeatPassword>
тег, поскольку 'repeatPassword' не является членом объекта формы.
Первое решение, которое приходит на ум, - это создать специальный объект формы TenantDTO, который будет содержать эти дополнительные поля, и при сохранении просто перенести данные в 'Tenant' (объектный компонент).
Это хороший подход?Каковы лучшие практики в этой ситуации?
Спасибо!
Леонтий