Предположим у меня есть 3 абсолютноо разные сущности (entities):
- User
- Customer
- Address
В контролере я пишу так:
@GetMapping
public ModelAndView registration(){
ModelAndView modelAndView = new ModelAndView();
User user = new User();
Customer customer = new Customer();
Address address = new Address();
modelAndView.addObject("user", user);
modelAndView.addObject("address", address);
modelAndView.addObject("customer", customer);
modelAndView.add
modelAndView.setViewName("registration");
return modelAndView;
}
Далее я хочу иметь "доступ" к данным объектам в form'е:
<form th:action="@{/registration}" th:object="user, address, customer" method="POST">
<label>Имя
<input type="text" th:field="*{customer.name}" name="email" th:placeholder="name">
</label>
<br>
<label>Фамилия
<input type="text" th:field="*{customer.surname}" name="email" th:placeholder="surname">
</label>
<br>
<label>Email
<input type="text" th:field="*{user.email}" name="email" th:placeholder="email">
</label>
<br>
...
...
...
</form>
Ошибка указывает на th:object="user, address, customer"
. Как правильно "вызывать" объекты в форме? Я так же видел (в IDE), что можно сделать через Map, но не знаю как.
Нашел один из вариантов решения: просто не писать th:object
Взятый за основу ответ: сссылка
Один из вариантов (рабочий):
Не использовать в форме th:object
, а просто передавать значения через th:field
или (как предлагает автор ответа) th:value
.
Пример кода:
<label>Имя
<input type="text" th:field="*{customer.name}" name="name" th:placeholder="name">
</label>
<br>
<label>Фамилия
<input type="text" th:field="*{customer.surname}" name="surname" th:placeholder="surname">
</label>
<br>
Дополнительные примеры кода:
@GetMapping
public ModelAndView registration(){
ModelAndView modelAndView = new ModelAndView();
User user = new User();
Customer customer = new Customer();
Address address = new Address();
modelAndView.addObject("user", user);
modelAndView.addObject("address", address);
modelAndView.addObject("customer", customer);
modelAndView.setViewName("registration");
return modelAndView;
}
@PostMapping
public ModelAndView createNewUser(@Valid User user, Address address, Customer customer, BindingResult bindingResult) {
ModelAndView modelAndView = new ModelAndView();
User userExists = userService.findUserByEmail(user.getEmail());
System.out.println("______");
System.out.println("______");
System.out.println(user);
System.out.println(address);
System.out.println(customer);
System.out.println("______");
System.out.println("______");
return modelAndView;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Можно ли как-нибудь сделать таймер в Firebase Firestore, чтобы через день после создания удалялась запись?
Есть объекты с двумя полями - String uuid и String fullNameИзначально компаратор был написан для сортировки по uuid,
Проблема: при указании всех CascadeType, кроме CascadeTypeREMOVE над полем private List<Course> courses в классе Instructor, при сохранении объекта класса Instructor не происходит...
У меня есть класс Main3Activity, в нем я использую adapter