Как предоставить данные для атрибутов сущностей в классе из HTML-формы? (Весенний мвк) - PullRequest
0 голосов
/ 18 сентября 2018

Чтобы я лучше понял, например: у нас есть класс, определенный со следующими атрибутами класса:

enter image description here

Мой общий интерес падает наатрибуты класса idGenero, idAutor и idType (которые являются экземплярами класса).

Отлично, я могу выбирать данные, используя Query<Discos> query = session.createQuery().Хорошо, теперь я хочу сделать вставку.Для этого я создал следующую форму:

    <form:form action="guardarDisco" method="POST" modelAttribute="disco">
<table>
    <tbody>
         <tr>
             <td><label>Nombre del disco:</label></td>
             <td><form:input path="nombre"/></td>
         </tr>
         <tr>
             <td><label>Genero:</label></td>
             <td>
             <form:select path="idGenero" items="${generos}"/>
             </td>
         </tr> 

          <tr>
            <td><label>Tipo disco:</label></td>
            <td>
             <form:select path="idTipo" items="${tipoDisco}"/>
             </td>
         </tr>
         <tr>
             <td><label>Precio:</label></td>
             <td><form:input path="precio"/></td>
         </tr>
         <tr>
             <td></td>
             <td><input type="submit" value="guardar disco"/></td>
         </tr>
    </tbody>
</table>
</form:form>

Я загружаю данные в комбинированный список с помощью Map.Следующие сервисы предоставляют мне список музыкальных жанров (genero), авторов (autor) и типов дисков (tipo_disco) в базе данных.

Все они следуют точно так же, как в следующем коде

@Override
    public Map<Integer,String> getListAutor() {
        Session session = sessionFactory.getCurrentSession();
        Query<Autor> query = session.createQuery("from Autor",Autor.class);
        List<Autor> autores = query.getResultList();
        Map<Integer,String> map = new LinkedHashMap<Integer,String>();
        for(Autor autor:autores) {
            map.put(autor.getId(),autor.getNombre() + " " + autor.getApellido());
        }
        return map;
    }

и, наконец, я добавляю его в модель в своем классе контроллеров

@RequestMapping("/agregarDisco")
    public String nuevoDisco(Model model) {
        model.addAttribute("disco",new Discos());
        model.addAttribute("generos",generoService.getListaGenero());
        model.addAttribute("autores",autorService.getListAutor());
        model.addAttribute("tipoDisco",tipoDiscoService.getTipoDiscoList());
        return "addDisco";
    }

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

Я полагаю, что страница не захватывает значения, поскольку эти атрибуты класса являются экземплярами классов.

Теперь, как вы могли бы решить эту проблему?Как бы вы сделали, чтобы присвоить значения для этих экземпляров класса из HTML-формы?

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