Раскрывающееся окно SpringMVC отображает информацию об объекте, а не значения

У меня есть набор атрибутов модели для списка объектов продукта. Однако, когда я пытаюсь получить доступ к списку в форме раскрывающегося списка, как это:

       <td><form:select path="product" items="${productList}"/></td>

Он отображает информацию о самом объекте, а не название продукта:

Product@4c23d7e2

Как сделать так, чтобы в форме отображались имена каждого элемента списка продуктов, например? Как первый элемент будет

productList.get(0).getName()

2 ответа

  1. Одним из способов было бы переопределить toString()метод в продукте следующим образом:

    @Override
    public String toString(){
        return getName();
    }
    

    Другой было бы передать a List<String>названий продуктов вместо List<Product>.

  2. Попробуйте следующее

    <form:select path="product">
        <form:options items="${productList}" />
    </form:select>
    

    или

    <form:select path="product">
       <c:forEach var="product" items="${productList}">
          <form:option value="${product.name}">${product.name}</form:options>
       </c:forEach>
    </form:select>
    

    Я не проверял. Думаю, это сработает.