Java 如何处理从HTML收集的数据并保存在MongoDB中
试图处理从HTML表单中收集的日期,我快发疯了。我使用Spring4作为后端,使用Mongodb作为持久性 我的问题是如何在Mongo中显示日期。我想得到以下格式:dd-MM-yyy。我想我知道Mongo使用ISO格式作为默认yyyy-MM-dd'T'HH:MM:ssZ,但当我尝试插入新文档时,在填写表单后,日期会保存为数字值,因此我的问题是: 为什么会这样? 是否可以以dd-MM-yyyy格式保存日期,并保留日期类型的出生日期? 如果不是,如何以标准ISO格式保存日期? Customer类I更改了setter方法以解析表单绑定的日期Java 如何处理从HTML收集的数据并保存在MongoDB中,java,spring,mongodb,date,date-formatting,Java,Spring,Mongodb,Date,Date Formatting,试图处理从HTML表单中收集的日期,我快发疯了。我使用Spring4作为后端,使用Mongodb作为持久性 我的问题是如何在Mongo中显示日期。我想得到以下格式:dd-MM-yyy。我想我知道Mongo使用ISO格式作为默认yyyy-MM-dd'T'HH:MM:ssZ,但当我尝试插入新文档时,在填写表单后,日期会保存为数字值,因此我的问题是: 为什么会这样? 是否可以以dd-MM-yyyy格式保存日期,并保留日期类型的出生日期? 如果不是,如何以标准ISO格式保存日期? Customer类I更
@Document
public class Customer implements UserDetails {
private static final long serialVersionUID = 1L;
private String firstName;
private String lastName;
private Date dateOfBirth;
private String username;
private String email;
private String password;
private String role;
public Customer() { }
public Customer(String firstName, String lastName, Date dateOfBirth, String username,
String email, String password, String role) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.dateOfBirth = dateOfBirth;
this.username = username;
this.email = email;
this.password = password;
this.role = role;
}
//getters, setters, etc.
public Date getDateOfBirth() {
return this.dateOfBirth;
}
public void setDateOfBirth(String dateOfBirth) {
try {
this.dateOfBirth = new SimpleDateFormat("dd-MM-yyyy").parse(dateOfBirth);
}
catch (ParseException e) {
//...
}
}
}
registration.html
使用/registration值映射的控制器使用DAO插入新客户
结果是:
谢谢你的建议。在我看来没有问题,但你需要一些解释 为什么会这样 您看到的值仍然是一个日期,它只是在您使用的查看器中以长等效形式显示 通过Mongo shell检查同一文档,您应该可以看到ISO格式的日期,但在内部它是以长值保存的 可以将日期保存为dd-MM-yyy格式,并保留出生日期 日期类型 dd-MM-yyyy是日期格式,如果要存储,必须将日期类型更改为字符串。不推荐 如果不是,如何以标准ISO格式保存日期
您不使用任何格式保存日期。它的内部表示是一个长值。第一点应该回答有关格式部分的问题。我试图在视图中显示数据库中保存的日期值,但日期、月份和年份不匹配。例如,如果我插入19 06 1990,则显示的值为Fri Nov 10 00:00:00 CET 24。我哪里错了?我不知道哪里错了。首先,您是否看到db中的正确值?似乎前端的值不正确。能否在setDateOfBirth方法中添加调试点并验证所看到的值?已修复!我使用了错误的SimpleDataFormat。正确的是yyyy-MM-dd。再次感谢!
<div class="form">
<h2>Registration</h2>
<form th:action="@{/registration}" method="POST"
th:object="${customer}">
<input type="text" placeholder="Nome" name="firstName"
th:field="*{firstName}" /> <input type="text" placeholder="Cognome"
name="lastName" th:field="*{lastName}" /> <input type="date"
name="dateOfBirth" th:field="*{dateOfBirth}" /> <input type="text"
placeholder="Username" name="username" th:field="*{username}" /> <input
type="email" placeholder="Email" name="email" th:field="*{email}" />
<input type="password" placeholder="Password" name="password"
th:field="*{password}" />
<button type="submit">Submit</button>
</form>
</div>