【发布时间】:2020-11-05 09:10:44
【问题描述】:
你好,我在 sping boot MVC 中引入了 thymeleaf
我看了很多例子,但我找不到为什么不能正常工作。
我正在尝试使用“nombre”和“direction”两个字段进行表单验证,但它始终验证模型是否正确,并重定向到“mensajeView”。
我尝试在@Valid 之后添加@RequestBody,但没有成功。
我的模特:
@Entity
public class Almacen {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "idAlmacen", updatable = false, nullable = false)
private int idAlmacen;
@NotEmpty(message = "La clave no puede estar en blanco")
private String nombre;
@NotEmpty(message = "Error")
private String direccion;
public int getIdAlmacen() {
return idAlmacen;
}
public void setIdAlmacen(int idAlmacen) {
this.idAlmacen = idAlmacen;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getDireccion() {
return direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
}
我的控制器
@PostMapping("/crearAlmacen")
public String crearAlmacenPost(@Valid Almacen almacen, BindingResult result, Model model) {
if (result.hasErrors()) {
return "crearAlmacen";
} else {
model.addAttribute("mensaje","Operacion completada con exito");
return "mensajeView";
}
}
我的看法:
<form action="#" th:object="${almacen}" th:action="@{/crearAlmacen}" method="post">
<div class="container">
<div class="row justify-content-center align-items-center minh-100">
<div class="col-lg-4">
<h2>Nuevo almacen</h2>
<div class="form-group">
<label for="nombre">Nombre</label>
<input id="nombre" th:field="*{nombre}" placeholder="Nombre" type="text" class="form-control">
<td th:if="${#fields.hasErrors('nombre')}" th:errors="*{nombre}">Error</td>
</div>
<div class="form-group">
<label for="direccion">Dirección</label>
<input id="direccion" th:field="*{direccion}" placeholder="Direccion" type="text" class="form-control">
<td th:if="${#fields.hasErrors('direccion')}" th:errors="*{direccion}">Error</td>
</div>
<button class="btn btn-success" type="submit">Guardar</button>
</div>
</div>
</div>
</form>
【问题讨论】:
-
尝试
@Valid @ModelAttribute Almacen almacen并将@NotEmpty注释更改为@NotBlank。 -
谢谢,但不起作用
标签: spring spring-boot validation model-view-controller thymeleaf