我正在使用spring mvc。在控制器中,我想將參數作爲Java Bean Order訂購。 Order bean有幾個參數,其中一個是dueDate(java.util.Date)。如何避免綁定爲java bean時彈簧mvc中的400錯誤
@RequestMapping("/toAddOrder")
public ModelAndView addOrder(Order order, BindingResult bindingResult){
return new ModelAndView("redirect:toViewOrder");
}
@InitBinder
protected void initBinder(
WebDataBinder binder) throws ServletException {
binder.registerCustomEditor(byte[].class,
new ByteArrayMultipartFileEditor());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
問題是,如果在提交表單給控制器之前沒有爲dueDate設置值。然後會遇到錯誤。 BAD_REQUEST,因爲dueDate爲空或「」。
所以,我想知道,如何避免這個問題? 我能找到的解決方案如下。 1. js檢查提交表單之前。 2.沒有綁定的順序,從獲取參數HttpServletRequest請求
我發現最後2個解決方案的額外問題。 如果Order Bean有太多參數,那麼我需要編寫長代碼來獲取和設置值,這可能會在未來增加我的負擔。
我認爲它應該幫助http://stackoverflow.com/questions/11118023/how-to-allow-null-date-in-spring-3-mvc/12476932#12476932 – mokshino
我已經解決了這個問題。但我遇到了新問題。 –