2014-10-12 22 views
2

我在Spring 3 + Hibernate中的表單提交中有兩個日期。 @Column(name =「FinStartDate」) private Date finStartDate;如何避免在春季表單提交中被拒絕的值[]問題

@Column(name = "FinEndDate") 
private Date finEndDate; 

我以某些標準爲基礎顯示/隱藏日期。當日期被隱藏並提交表格時,出現以下錯誤

org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors 
Field error in object 'register' on field 'obj.finEndDate': rejected value []; codes [typeMismatch] 

如何避免此問題。

+0

它看起來像我試圖解決的錯誤。檢查此鏈接:http://stackoverflow.com/questions/32828363/client-sending-string-instead-of-bigdecimal-to-server-on-update。你如何解決它? – 2015-09-28 19:49:46

回答

0

我認爲你錯過了一個格式化程序將日期字符串轉換爲日期對象。

你可以嘗試來註釋字段

@DateTimeFormat(pattern = "yyyy-MM-dd") 

或在您的控制器像申報initbinder:

@InitBinder 
protected void initBinder(WebDataBinder binder) { 
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    binder.registerCustomEditor(Date.class, new CustomDateEditor(
      dateFormat, false)); 
} 

或者你也可以在你聲明格式化,將格式化所有的MVC框架的配置文件日期對象您的應用程序綁定到。

+0

實際上我不需要格式化字符串,但需要避免日期檢查,如果我沒有通過它隱藏的值。 – 2014-10-12 14:45:24

+0

所以當你隱藏你的輸入時也禁用它,被禁用的輸入值將不會被髮布,所以spring不會嘗試綁定它。 – jpprade 2014-10-13 09:16:45

+0

但在我的情況下,春天顯示'obj.finEndDate':被拒絕的值[];代碼[typeMismatch]被禁用時。我在Controller vai @ModelAttribute()註釋中接收值 – 2014-10-14 05:02:07