2010년 8월 16일 월요일

@PathVariable 어노테이션을 이용한 URI 템플릿

RESTful 서비스가 유행하면서 URI를 다음과 같이 REST 방식으로 구성하는 경우가 있다.

 

 

기존에는 http://somehost/users/userinfo?id=madvirus 와 같이 파라미터를 이용해서 아이디나 이름을 전달받았다면, 이제는 URI에 아이디나 이름 등이 포함되도록 URL을 구성하고 있다.

 

스프링 3 버전에 추가된 기능 중 필자가 가장 반기는 기능 중의 하나가 URI 템플릿이며, 이 URI 템플릿을 이용하면 REST 방식의 URL 매칭을 쉽게 처리할 수 있다. URI 템플릿을 사용하는 방법은 매우 간단하며, 다음과 같이 두가지만 추가로 작업해주면 된다.

 

1. dispatcherServlet.xml 가장 밑에 다음을 추가한다.

 

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
  <property name="alwaysUseFullPath" value="true"/>
 </bean>
 
 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  <property name="alwaysUseFullPath" value="true"/>
 </bean>

 

2. web.xml 에 다음을 추가한다.

 

  <servlet-mapping>
   <servlet-name>dispatcher</servlet-name>
   <url-pattern>*.nar</url-pattern> // 적절한 이름을 사용한다.
   <url-pattern>/board/*</url-pattern>  // 적절한 이름을 사용한다. 

  </servlet-mapping>

 

3. 해당 Controller에 다음과 같은 변수를 사용한다.

 

@RequestMapping 어노테이션의 값으로 {템플릿 변수}를 사용한다.

@PathVariable 어노테이션을 이용해서 {템플릿 변수}와 동일한 이름을 갖는 파라미터를 추가한다.

 

실제 URI 템플릿이 적용된 코드는 다음과 같다. (수정 중)

 

댓글 없음:

댓글 쓰기