要绑定一个日期时间格式的字符串到模型属性,可以使用 @DateTimeFormat 注解来配置日期时间格式。这个注解可以用在属性的 getter 和 setter 方法上。
下面是一个示例代码:
import org.springframework.format.annotation.DateTimeFormat;
public class MyModel {
private Date datetime;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public Date getDatetime() {
return datetime;
}
public void setDatetime(Date datetime) {
this.datetime = datetime;
}
}
在上面的代码中,我们在 datetime 属性的 getter 方法上使用了 @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 注解来指定日期时间格式。这样,当绑定一个字符串到 datetime 属性时,Spring MVC 会自动将字符串解析为对应的日期时间格式。
例如,如果要将字符串 "2021-01-01 12:00:00" 绑定到 datetime 属性上,可以使用如下的表单:
然后,在处理表单提交的控制器方法中,可以直接使用 MyModel 对象来接收表单数据:
@PostMapping("/save")
public String save(@ModelAttribute MyModel model) {
// 处理模型对象数据
// ...
return "redirect:/success";
}
在上面的控制器方法中,model 对象的 datetime 属性会自动被绑定为对应的日期时间值。
需要注意的是,为了在表单中正确绑定日期时间字符串,你可能还需要在 Spring MVC 的配置文件中配置日期时间格式化支持。你可以在配置文件中添加如下的内容:
上述配置会使用 FormattingConversionServiceFactoryBean 来配置一个日期时间格式化器,并将其设置给 mvc:annotation-driven。这样,当绑定日期时间字符串时,Spring MVC 会使用配置的日期时间格式化器来解析字符串。