Выпадающий список из java-объектов
Есть некоторый сервер, который выполняет коммуникацию с базой данных. В базе данных хранится информация о продуктах (Product) и производителях (Producer). Также есть некоторый сервер-клиент, на котором реализуется UI.
Возникла проблема с формой для добавления новых продуктов: реализовал её таким образом, что производителя можно выбрать из выпадающего списка, но этот список возвращает строку, вместо java-объекта. Как следствие, на этапе создания продукта получаю ошибку конвертации.
Есть теоретический вариант решения этой проблемы: передавать в форму также объект, который выполняет запрос на сервер(для получения данных из БД), далее каким-то образом записать id выбранного из списка производителя в отдельную переменную, и делать запрос непосредственно в UI-форме.
Вопрос:
- Как это реализовать?
- Быть может, есть более простые решения такой проблемы?
Сущность Product:
public class Product {
private Long id;
private String title;
private BigDecimal cost;
private LocalDate shelfLife;
private Producer producer;
//геттеры, геттеры, конструктор
}
Сущность Producer:
public class Producer {
private Long id;
private String name;
private List<Contact> contacts;
// геттеры, сеттеры, конструктор
}
На всякий случай сущность Contact (которая в сущности Producer):
public class Contact {
private Long id;
private Long number;
// геттеры, сеттеры, конструктор
}
Код UI-формы:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<form:form action="saveProduct" modelAttribute="product">
Title <form:input path="title"/>
<form:errors path="title"/>
<br><br>
Cost <form:input path="cost"/>
<br><br>
Shelf life <form:input path="shelfLife"/>
<br><br>
Producer <form:select path="producer"> // <- часть, реализующая выпадающий список
<form:options items="${allProducers}"/>
</form:select>
<br><br>
<input type="submit" value="OK">
</form:form>
</html>