본문 바로가기

어노테이션

Spring 3.1의 Controller에서 Custom Annotation을 파라미터로 이용했을때의 Map 클래스 받는 법 최근에 Spring 3.2와 마이플랫폼 연동을 하는 과정을 하면서 애로사항을 겪은 것이 있어서 이 포스트를 통해 정리하게 되었다. Controller에서 메소드의 파라미터에 Custom Annotation을 이용하여 사용자가 보낸 값을 받을때 Map으로 받는 것에 문제가 있었다. 이렇게 얘기하면 와 닿지가 않을수도 있을것 같아 예를 들어보도록 하겠다. 흔히 Controller의 메소드에서 파라미터를 사용할때 다음과 같이 상황에 맞는 적절한 어노테이션을 사용하게 될 것이다. public String getList(@RequestParam(name="no") int no) throws Exception 이렇게 파라미터를 받아다가 변수에 바로 설정하는 식의 방법을 많이 사용할것이다. 위의 예에서는 int 형으..
<mvc:annotation-driven> 태그 설정으로 올라오는 bean 태그 내용(3.1 버전용) 예전에 포스트 했던 내용중 을 Spring 환경설정 파일에 넣었을 경우 내부적으로 어떤 Bean 설정들이 되는지를 다뤘던 내용이 있었다. 그러나 Spring이 3.1 버전으로 바뀌면서 이 부분도 변화를 겪게 되어 이 부분에 대한 정리도 새로 하게 되었다. Spring이 3,0에서 3.1 버전으로 바뀌면서 Spring MVC에 변화가 생겼기에 이 부분에 변화가 생긴 것이다. 변화가 된 내용은 구글링 해보면 나오니 구글링 하기 바란다. 주석을 이용해서 약간의 설명을 추가해두었다. 주석을 읽어보길 바란다
Custom Annotation을 이용한 객체 검증 작업..(3) 이제 마지막으로 이렇게 검증 작업을 할때 에러 메시지를 출력하는 것과 어떤 기준으로 에러 메시지를 골라서 출력하는지에 대해 설명하고자 한다. Spring에서 객체 Binding 관련 에러 메시지를 관리할때는 일종의 규칙이 존재한다. 예를 들어 이제껏 설명한 예였던 입력한 값을 객체에 Binding 하면서 데이터 중복을 체크하는 과정에서의 에러 메시지에 대한 내용을 얘기해보자. 데이터 중복에 대한 메시지는 여러 형태를 가질수 있다. 단순히 "이미 입력된 값입니다" 도 있을수 있고 "입력한 이름은 이미 입력된 값입니다" 이렇게 나타낼수도 있다. 하지만 그렇다 해도 중복 에러에 대한 에러코드는 변함이 없어야 한다. "이미 입력된 값입니다"의 에러코드는 ExistCheck이고 "입력한 이름은 이미 입력된 값입니..
Custom Annotation을 이용한 객체 검증 작업..(2) 저번 포스팅에 이어서 이번엔 ConstraintValidator 인터페이스를 구현하여 검증 역할을 하는 클래스인 ExistCheckValidator가 사용하는 비즈니스 서비스와 이를 Controller 및 jsp에서 어떻게 표현되는지를 다뤄보고자 한다. ExistCheckValidator 클래스는 검증 업무를 하는 서비스인 ValidateService 클래스 객체를 갖고 있다. ValidateService는 중복여부를 체크하는 함수인 existCheck 함수만 정의되어 있는 인터페이스이며 ExistCheckValidator 클래스에는 ValidateService 인터페이스를 구현한 클래스인 ValidateServiceImpl 클래스가 DI된다. 그런 내용을 알고 다음에 나오는 ValidateService..
Custom Annotation을 이용한 객체 검증 작업..(1) 이번 포스팅에서는 Spring에서 모델(Model)을 검증(Validate)하는 부분을 다뤄보고자 한다. 이 포스팅을 Spring을 잘 다루지 못하는 초보분들도 보시겠지만 지금 다루고자 하는 글은 약간 응용편이기 때문에 모델을 검증하는 기본적인 내용은 책이나 인터넷을 보시길 바란다. 책이나 인터넷에 이미 나와있는 뻔한 내용을 포스팅해봤자 보는 사람이나 글을 쓰는 사람이나 별 의미가 없기 때문이다. 개인적으로 Spring Controller에 값을 전달할때 Model 개념을 잘 사용하는 편이 아니다. 개인적으로 Model을 이용해서 등록하는 방법보다 Ajax를 통하여 등록하는 방법을 사용하고 등록에 대한 결과를 JSON 문자열로 받아 클라이언트에서 받은 JSON 문자열 값을 분석하여 그에 맞는 행동을 하도..
<mvc:annotation-driven />이 설정해주는 Spring 설정 Tag 흔히 Spring Web MVC 프로젝트를 할때 보면 을 많이 설정하는 편이다. 이거 하나를 설정함으로써 Spring Web MVC를 하기 위해 설정해야 하는 값들이 자동으로 추가 되는데 때로는 이것을 쓰지 않고 일일이 관련된 값을 수동으로 넣어야 하는 경우가 있다. 내가 겪은 대표적인 예로는 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter(줄여서 AnnotationMethodHandlerAdapter로 한다)에 메시지 컨버터를 추가해야 하는 상황이 있었는데 mvc 태그에서 별도로 추가를 할 수 있는 태그를 제공하질 않았다.(이 부분은 Spring 3.1에서는 별도 태그가 추가가 된 상태다) 그래서 을 지우고 내가..