使用thymeleaf时,我在html模板的form post方法中遇到以下错误:
There was an unexpected error (type=Bad Request, status=400).
Validation failed for object='miembro'. Error count: 2
org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors
Field error in object 'miembro' on field 'fechaIngreso': rejected value [2020-10-12]; codes [typeMismatch.miembro.fechaIngreso,typeMismatch.fechaIngreso,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [miembro.fechaIngreso,fechaIngreso]; arguments []; default message [fechaIngreso]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'fechaIngreso'; nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseable date: "2020-10-12"]
Field error in object 'miembro' on field 'fechaNacimiento': rejected value [1992-11-12]; codes [typeMismatch.miembro.fechaNacimiento,typeMismatch.fechaNacimiento,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [miembro.fechaNacimiento,fechaNacimiento]; arguments []; default message [fechaNacimiento]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.util.Date' for property 'fechaNacimiento'; nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseable date: "1992-11-12"]
似乎是日期解析的问题。被拒绝的值是yyyy-mm-dd格式的,但我总是在项目中的每个日期属性中插入这种格式的选项。例子:
@Entity
public class Miembro extends Persona {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int idMiembro;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Temporal(TemporalType.DATE)
private Date fechaIngreso;
此外,sql列类型被正确Map为“date”类型。
代码的ELEAF部分:
<div class="jumbotron" th:if="${habilitarIngreso}">
<form th:action="principal" th:object="${miembroP}" method="post">
<label>Nombre</label>
<input type="text" th:field="*{nombre}"
placeholder="Ingrese nombre"/>
<label>Apellido</label>
<input type="text" th:field="*{apellido}"
placeholder="Ingrese apellido"/>
<label>D.N.I</label>
<input type="number" th:field="*{dni}"
placeholder="Ingrese dni"/>
<label>Teléfono</label>
<input type="number" th:field="*{telefono}"
placeholder="Ingrese teléfono"/>
<label>Dirección</label>
<input type="text" th:field="*{direccion}"
placeholder="Ingrese dirección"/>
<label>Fecha Nacimiento</label>
<input type="date" th:field="*{fechaNacimiento}"
placeholder="Ingrese fecha de nacimiento"/>
<label>Fecha de ingreso</label>
<input type="date" th:field="*{fechaIngreso}"
placeholder="Ingrese fecha de ingreso"/>
<input type="submit" value="Enviar"/>
</form>
</div>
你能告诉我发生了什么事吗?
1条答案
按热度按时间nmpmafwu1#
我通过将所有日期变量从date改为localdate来修复它。我不知道这到底是为什么,似乎thymeleaf不太适合与日期库