initbinder

PropertyEditor의 여러가지 장점에도 불구하고, PropertyEditor는 매번 바인딩을 할 때마다 새로운 오브젝트를 만들어야 한다는 약점이 있다. 그래서 스프링 3.0에는 PropertyEditor를 대신할 수 있는 새로운 타입 변환 API가 도입됐다. 바로 Converter 인터페이스다. Converter는 PropertyEditor와 다르게 변환과정에서 메소드가 한 번만 호출된다. ⇒ 변환 작업 중 상태를 인스턴스 변수로 저장하지 않음 (멀티스레드 환경에서 안전) Converter Converter는 소스 타입에서 타깃 타입으로의 단방향 변환만 지원한다. (PropertyEditor는 양방향 지원) 물론 소스 타입과 타깃 타입을 바꿔서 컨버터를 하나 더 만들면 양방향 변환이 가능해 진다...
컨트롤러 메소드에 @ModelAttribute가 지정된 파라미터를 @Controller 메소드에 추가하면 세 가지 작업이 자동으로 진행된다. 파라미터 타입의 오브젝트를 만든다. @ModelAttribute User user 라는 파림터 선언이 있다면 User타입의 오브젝트를 생성한다. 준비된 모델 오브젝트의 프로퍼티에 웹 파라미터를 바인딩해준다. 전환이 불가능한 경우라면, BindingResult 오브젝트 안에 바인딩 오류를 저장해서 컨트롤러로 넘겨주거나 예외를 발생시킨다. 모델의 값을 검증한다. 타입에 대한 검증은 끝났지만, 그 외의 검증할 내용이 있다면 적절한 검증기를 등록해서 모델의 내용을 검증할 수 있다. ⇒ 스프링에서는 컨트롤러로직과 검증 로직을 분리할 수 있다. 데이터 검증은 대개 폼의 값이 ..
깡냉쓰
'initbinder' 태그의 글 목록