Spring MVC 和 LocalDateTime java 8

Posted

技术标签:

【中文标题】Spring MVC 和 LocalDateTime java 8【英文标题】:Spring MVC and LocalDateTime java 8 【发布时间】:2020-07-21 02:17:58 【问题描述】:

我有一个输入类型为日期的表单,用于与 bean 中的属性 localDatetime 绑定。它总是在控制器中为空。如果我按日期更改 LocalDateTime 一切正常。 知道发生了什么吗?

豆子:

@Entity
@Table(name = "visits")
public class Visit 

....
@Column(name = "visit_date")
    @DateTimeFormat(iso = ISO.DATE_TIME)
    private LocalDateTime date;
..

查看:

<tr>
    <td><label>Date:</label></td>
    <td><form:input type="date" path="date" /></td>
</tr>

控制器:

@PostMapping("/saveVisit")
public String saveVisit(@ModelAttribute("visit") Visit theVisit, BindingResult result) 

    System.out.println("visit " + theVisit.toString());

    // visitService.saveVisit(theVisit);

    // send over to our form
    return "redirect:/pet/showListVisits?petId=" + theVisit.getPet().getPet_id();

结果: 访问访问 [visit_id=0, pet=Pet [pet_id=1, owner=null, name=null, type=null], date=null, issue=]

【问题讨论】:

能否请您提供一些存储在数据库中的示例记录,以了解它在数据库中存储的格式。 您好,输入类型日期与模式 "yyyy-MM-dd" 一起使用。无论如何,这里是示例:2020-04-09 00:00:00。数据库中的字段为时间戳类型 【参考方案1】:

我已经解决了问题,我使用的是输入类型 = 日期,但 bean 是 localDateTime。我通过 LocalDate 更改了它,目前正在工作。

谢谢

【讨论】:

是的,那是正确的方法,这就是为什么我要询问数据库中的记录。当数据库中只有“yyyy-MM-dd”格式的日期时,最好使用LocalDate。【参考方案2】:

你可以在这里查看 Lu55 的答案https://***.com/a/47934151/13258364

也许它可以帮助您找到解决问题的方法

【讨论】:

我想这就是我正在做的事情(选项 2),但不在请求中,因为我不只是发送日期,而是发送整个对象。但是在适当的属性中我有注释。 希望对你有帮助 尝试在您的实体字段中添加@DateTimeFormat(pattern = "yyyy-MM-dd")

以上是关于Spring MVC 和 LocalDateTime java 8的主要内容,如果未能解决你的问题,请参考以下文章

Spring Web MVC (Spring MVC) 的相关例题及解析

spring mvc 是啥

MVC模式和Spring MVC初识

Spring Boot和spring MVC之间的区别[重复]

Spring MVC系列初识Spring MVC

Spring MVC 和 Spring 总结