我正在使用spring mvc。在控制器中,我想将参数作为 java Bean Order 获取。order bean 有几个参数,其中之一是dueDate (java.util.Date)。
@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));
}
问题是如果我在将表单提交给控制器之前没有设置到期日期的值。然后会遇到错误。BAD_REQUEST,因为dueDate 为空或“”。
所以,我想知道,如何避免这个问题?我能找到的解决方案如下。1.提交表单前js检查。2.不绑定为Order,从HttpServletRequest请求中获取参数
我为最后 2 个解决方案发现的额外问题。如果 Order Bean 的参数太多,那么我需要编写很长的代码来获取和设置值,这可能会增加我的负担。