RESTful 서비스가 유행하면서 URI를 다음과 같이 REST 방식으로 구성하는 경우가 있다.
- http://somehost/user/madvirus/
- http://somehost/games/
- http://somehost/forum/board1/10
기존에는 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 템플릿이 적용된 코드는 다음과 같다. (수정 중)
댓글 없음:
댓글 쓰기