在我的Spring Boot应用程序中,我需要处理带有日期时间字段的表单并将其转换为LocalDateTimeJava。
我指定了pattern "YYYY-MM-dd HH:mm",当我使用输入值提交表单时,它无法转换1990-01-01 10:10。
这是表单对象:
public class UserForm {
@NotNull
@DateTimeFormat(pattern = "YYYY-MM-dd HH:mm")
private LocalDateTime dateTime;
// getters, setters
}
控制器:
@RequestMapping("/users")
@Controller
public class UserController {
@GetMapping("")
public String userForm(UserForm userForm) {
return "/users/form";
}
@PostMapping("")
public String postForm(@Valid UserForm userForm, BindingResult bindingResult) {
System.out.println(userForm + " " + bindingResult);
return "/users/form";
}
}
和胸腺嘧啶的形式:
<form th:object="${userForm}" th:action="@{/users}" method="post">
<span th:each="err: ${#fields.errors('dateTime')}" th:text="${err}" style="background-color:red;color:white;"/>
<input type="text" th:field="*{dateTime}"/>
<input type="submit">
</form>
这个例子有什么问题?我应该如何修复它以使其正确解析String为LocalDateTime?
我也在这里提交了示例应用程序。
更新:
在“转换失败”下,我的意思是我得到了例外:
org.springframework.core.convert.ConversionFailedException:无法从类型[java.lang.String]转换为类型[@ javax.validation.constraints.NotNull @ org.springframework.format.annotation.DateTimeFormat java.time.LocalDateTime]价值1990-01-01 10:10
使用小写字母可以yyyy解决此问题。谢谢。
相关分类