我有一個驗證錯誤的問題時,我提出我的形式一樣,在顯示的網頁上一個空的日期顯示:Spring MVC的3:和CustomDateEditor工作,但有一個驗證錯誤(BindingResult)
Failed to convert property value of type java.lang.String to required type
java.util.Date for property dateFin; nested exception is
java.lang.IllegalArgumentException: Could not parse date: Unparseable date: ""
我的控制器看起來是這樣的:
@Controller
@SessionAttributes
@Lazy
public class MyController extends AbstractMVPAction {
@RequestMapping(value = "/secured/cp/saveProgram")
public String enregistrerProgramme(@ModelAttribute Program program,
BindingResult bindingResult, ModelMap model){
if(bindingResult.hasErrors()){
model.put("program", program);
return "/secured/cp/showProgram"
}else{
// ... saves the programme
model.put("program", null);
return "/secured/cp/backToOtherPage"
}
}
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new CustomDateEditor(
new SimpleDateFormat("dd/MM/yyyy"), false));
}
}
當我調試我的方法,我可以看到我的目的是好的,我做了修飾的很好報告,日期爲空,但bindingResult.hasErrors()返回true根據我的看法,它不應該。
我曾經在Program對象和一個@Valid註解中有一些驗證註釋,但是我把它們都刪除了,仍然有問題。
我讀過很多類似的問題,每次解決方案都是@ InitBinder/CustomDateEditor。 所以它是在那裏,我想它的工作原理,日期以我想要的方式顯示(在我添加它之前,情況並非如此),如果它不是空的,我可以提交它們。
感謝的提前,我開始發瘋......
Definitly我需要一個晚上,我在早餐想着這樣的事情...複製/粘貼是邪惡的!感謝您的回答! – scherzoteller