gpt4 book ai didi

java - spring mvc 对象时间戳绑定(bind)中的字段错误

转载 作者:太空宇宙 更新时间:2023-11-04 13:24:21 25 4
gpt4 key购买 nike

我正在使用 spring 4.1.7.RELEASE。

我无法将日期元素绑定(bind)到 bean 属性。

我尝试创建一个全局 Binder 。

我不知道我做错了什么。

@ControllerAdvice
public class CommonBindingInitializer {
private static final String DATE_FORMAT = "yyyy-MM-dd";
@InitBinder
public void registerCustomEditors(WebDataBinder binder, WebRequest request) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT, request.getLocale());
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, null, new CustomDateEditor(dateFormat, true));
binder.registerCustomEditor(java.util.Date.class, null, new CustomDateEditor(dateFormat, true));
binder.registerCustomEditor(Timestamp.class, null, new CustomDateEditor(dateFormat, true));
}
}

但这并不能解决我的问题。在我的 Controller 中我总是遇到错误:

org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'searchCriteria' on field 'dateCreation': rejected value [2015-09-16];
codes [typeMismatch.searchCriteria.dateCreation,typeMismatch.dateCreation,typeMismatch.java.sql.Timestamp,typeMismatch];
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [searchCriteria.dateCreation,dateCreation]; arguments [];
default message [dateCreation]];
default message [Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Timestamp' for property 'dateCreation';
nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [java.sql.Timestamp]
for property 'dateCreation':
PropertyEditor [org.springframework.beans.propertyeditors.CustomDateEditor] returned inappropriate value of type [java.util.Date]]

你能告诉我出了什么问题吗?

谢谢。

最佳答案

寻找解决方案。

正如拉尔夫在此评论中所说的那样 Timestamp Spring conversion非常清楚。

CustomDateEditor 将字符串转换为 java.util.Date(而不是 java.sql.Timestamp)。

我通过重写 CustomDateEditor 并在 setAsText 方法中实例化一个新的时间戳而不是 java.util.date 来完成我自己的属性编辑器类。而且效果很好。

希望它能帮助别人。

关于java - spring mvc 对象时间戳绑定(bind)中的字段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32806139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com