2011-02-17 2 views
0

이 아닙니다. 스프링 MVC를 사용할 때 기본적으로 "2010/01/02"는 올바르게 바인딩되지만 "2010-01-22"는 올바르게 바인딩됩니다. 02 "는 그렇지 않습니다.날짜 클래스 유형의 데이터 바인딩. "2010/01/02"는 올바르게 바인딩되지만 "2010-01-02"는

나는 스프링이 initBinder와 같은 유용한 바인딩 메커니즘을 가지고 있음을 알고있다. 그러나이 질문에서 저는 정의 된 규칙이 어디에 있는지 알고 싶습니다. 누구든지 예를 들어 HTTP 또는 Spring 참조의 RFC 문서를 알고 있습니까?

답변

2

그것은 단지 우연의 일치입니다.

스프링 MVC는 String (모델 객체에 이러한 생성자가있는 경우)을 취하는 단일 인수 생성자를 통해 입력 매개 변수를 암시 적으로 모델 객체로 변환 할 수 있습니다. Date에는이 생성자가 있지만 더 이상 사용되지 않으므로이 동작은 해당 생성자의 동작에 의해 결정됩니다.

+0

나는 정확히 모르겠다.이 규칙은 Spring과 관련이 없으며 Date 클래스의 생성자에는 "yyyy/mm/dd"와 같은 정규 표현식이 있습니까? – zono

+0

@yusaku : 정확합니다. 값을 바인딩 할 수없는 경우 스택 추적을보고이를 볼 수 있습니다. 생성자의 동작은 해당 javadoc에 설명되어 있습니다. http://download.oracle.com/javase/6/docs/api/java/util/Date.html – axtavt

관련 문제