스프링 mvc를 사용하고 있습니다. 컨트롤러에서 매개 변수를 Java Bean Order로 가져 오려고합니다. 주문 빈에는 여러 매개 변수가 있으며 그 중 하나는 dueDate (java.util.Date)입니다.자바 빈으로 바인딩 할 때 spring 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에 값을 설정하지 않으면 문제가 발생합니다. 그러면 오류가 발생합니다. dueDate가 null이거나 ""이므로 BAD_REQUEST입니다.
그래서,이 문제를 피하는 방법을 알고 싶습니다. 찾을 수있는 해결책은 다음과 같습니다. 1. 양식을 제출하기 전에 js를 확인하십시오. 2. HttpServletRequest의 요청에서 내가 지난 2 개 솔루션을 찾을
추가 질문에 매개 변수를 가져, 순서와 결합하지. Order Bean에 매개 변수가 너무 많아서 값을 가져오고 설정하기 위해 긴 코드를 작성해야하므로 나중에로드가 늘어날 수 있습니다.
나는 그것이 도움이된다고 생각한다. http://stackoverflow.com/questions/11118023/how-to-allow-null-date-in-spring-3-mvc/12476932#12476932 – mokshino
나는이 문제를 해결했다. 그러나 나는 새로운 문제를 만난다. –