Я пытаюсь изменить некоторые регистры, которые я вставил ранее в БД.
После выбора регистра, который я хочу изменить, появляется форма, в которую я помещаю новые данные.
Все хорошо, пока здесь.
После отправки формы в метод контроллера, он не получает объект, который мне нужно изменить, и выводит «Обязательный параметр 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"
}
}