Как получить доступ к дополнительным полям FORM НЕ в модели? - PullRequest
0 голосов
/ 03 апреля 2020

Я работаю над формой администратора для обновления учетных записей пользователей. Я хочу предоставить возможность администратору назначить новый пароль. Поэтому мне нужно добавить 2 поля в форму, пароль и пароль подтверждения. Пароль работает нормально, так как он в моей модели User, но второе поле, ConfirmPassword, недоступно при отправке формы.

Вот метод в моем контроллере, который получает данные формы:

@PostMapping("/users/updateUser")
public ModelAndView updateUser (@Valid @ModelAttribute("user") User user, BindingResult result, ModelMap model) {
    return new ModelAndView("redirect:/admin/users");
}

Я не уверен, как решить эту проблему. У меня была идея создать DTO со всеми полями, включая дополнительное, и затем использовать ModelMapper для передачи данных в объект User. Но это похоже на излишество.

Есть ли более чистый способ принимать поля формы, которых нет в модели User?

1 Ответ

0 голосов
/ 04 апреля 2020

Просто используйте поле Transient в классе вашей модели. Причина использования переменной Transient заключается в том, что она не будет участвовать в сохранении (она не создаст поле в таблице базы данных). Вы можете использовать это поле для проверки.

@Transient
private String confirmPassword;

// Getter/Setters
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...