【问题标题】:Error: Failed to convert property value of type java.lang.String to required type java.util.Date错误:无法将 java.lang.String 类型的属性值转换为所需的 java.util.Date 类型
【发布时间】:2017-09-08 16:01:57
【问题描述】:

我知道这个问题被问了很多。但我尝试了所有解决方案,但仍然无法解决问题。

Entity.java(带有 getter 和 setter):

@Temporal(TemporalType.DATE)
private Date projectDate;

EntityForm.java(带有 getter 和 setter):

private Date projectDate;

EntityJsp.jspx:

<form:input id="project-projectDate" path="entityForm.projectDate" 
class="form-control datepickerDateFuture"/>

我的表实体有projectDate 列数据类型为date

我尝试在 Entity.java 字段上使用 @DateTimeFormat(pattern="MM/dd/yyyy")。没有区别。我可以使用数据类型Stringvarchar 很好地保存它。我想保存为Date

我的环境是:Spring、Hibernate、jquery、SQL Server。

错误是:

Failed to convert property value of type java.lang.String to required type java.util.Date for property entityForm.projectDate; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [09/27/2017]

【问题讨论】:

    标签: sql-server spring hibernate date jquery-ui


    【解决方案1】:

    好的。所以我发现了问题所在。页面上还有其他日期字段,我在我的 Controller 类中绑定了 DateFormatter 方法。

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.addCustomFormatter(new DateFormatter("MM/dd/yyyy HH:mm:ss"));
    }
    

    为了解决这个问题,我必须添加另一种格式,专门针对我的领域。

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.addCustomFormatter(new DateFormatter("MM/dd/yyyy HH:mm:ss"));
        binder.addCustomFormatter(new DateFormatter("MM/dd/yyyy","entityForm.projectDate" ));
    }
    

    【讨论】:

      猜你喜欢
      • 2018-08-21
      • 2015-04-28
      • 2014-07-05
      • 2017-05-06
      • 2015-03-29
      • 2021-06-26
      • 1970-01-01
      • 2017-01-28
      • 2019-08-23
      相关资源
      最近更新 更多