Метод не получает объекты из шаблона. Весна + Тимьян - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь изменить некоторые регистры, которые я вставил ранее в БД.

После выбора регистра, который я хочу изменить, появляется форма, в которую я помещаю новые данные. Все хорошо, пока здесь.

После отправки формы в метод контроллера, он не получает объект, который мне нужно изменить, и выводит «Обязательный параметр Ejemplar« ejemplar »отсутствует», когда я удаляю требуемый = «false»

Надеюсь, кто-нибудь может дать мне немного света. Заранее спасибо!

Код из шаблона:

<div th:if="${ejemplarModificar} != null">
            <form action="/nuevosDatos" method="post">
                <p>
                    <b>Modelo:</b> 
                    <select name="idmoneda"> 
                        <option th:if="moneda.idmoneda != null" th:each="moneda : ${monedas}" 
                          th:value="${moneda.idmoneda}" th:text="${moneda.idmoneda}"></option> 
                    </select> 
                </p>

                <p><b>Ano:</b> <input type='number' name='ano' /></p>
                <p><b>Ciudad:</b> <input type='text' name='ciudad' /></p>
                <p><b>Fecha:</b> <input type='date' name='fecha' /></p>
                <p><b>Estado:</b>
                    <textarea name='estado' rows='5' cols='40'></textarea>
                </p>
                <p>
                    <b>Proveedor:</b> 
                    <select name="cif"> 
                        <option th:if="proveedor.cif != null" th:each="proveedor : ${proveedores}" 
                          th:value="${proveedor.cif}" th:text="${proveedor.nombre}"></option> 
                    </select>
                </p>
                <input type='submit' value='Enviar' />
            </form>
        </div>

Код, откуда он приходит:

<div th:case="'M'">
            <table>
                <tr>
                    some unnecesary code
                </tr>
                <tr th:each="moneda : ${monedas}">
                    <td th:text="${moneda.idmoneda}"></td> 
                    <td th:text="${moneda.valor}"></td> 
                    <td th:text="${moneda.diametro}"></td> 
                    <td th:text="${moneda.peso}"></td> 
                    <td th:text="${moneda.unidad}"></td>
                    <td th:text="${moneda.composicion}"></td> 
                    <td th:text="${moneda.descripcion}"></td>
                    <td><a th:href="@{/modificar/M(idmoneda=${moneda.idmoneda})}" th:text="Modificar"></a></td>                     
                </tr>
            </table>

и

@RequestMapping("/modificar/E")
    public String modificare(@RequestParam long id, Model model) {
        List <Moneda> monedas = repositorioMoneda.findAllByOrderByIdmonedaAsc();
        List <Proveedor> proveedores = repositorioProveedor.findAllByOrderByCifAsc();

        model.addAttribute("monedas", monedas);
        model.addAttribute("proveedores", proveedores);

        Ejemplar ejemplar = repositorioEjemplar.findById(id);
        model.addAttribute("ejemplarModificar", ejemplar);

        return "modificarRegistro";
    }

Код от контроллера:

   @RequestMapping("/nuevosDatos")
    public String modificar(@RequestParam(required=false) Moneda moneda, @RequestParam(required=true)Ejemplar ejemplar, 
                @RequestParam(required=false)Proveedor proveedor, Model model) {
           if (ejemplar != null) {
                Ejemplar e = repositorioEjemplar.findById(ejemplar.getId());
                e.setAno(ejemplar.getAno());
                e.setCiudad(ejemplar.getCiudad());
                e.setEstado(ejemplar.getEstado());
                e.setFecha(ejemplar.getFecha());
                e.setModelo(ejemplar.getModelo());
                e.setProveedor(ejemplar.getProveedor());

                repositorioEjemplar.save(e);

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