我正在尝试修改以前在数据库中插入的某些注册表。
选择要修改的注册表后,出现一个表格,我在其中放置新数据。 一切都很好,直到这里。
将表单发送到控制器方法后,它没有收到我需要修改的对象,并且当我删除了required =“ false”时,提示“不存在必需的Ejemplar参数'ejemplar'”
希望有人可以给我一点光。预先感谢!
模板中的代码
<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"
}
}