52.2.3. URI 템플릿 변수의 값 가져오기
52.2.3.1. 개요
“경로 설정” 에서 설명한 대로 리소스 경로에는 동적으로 값에 바인딩되는 변수 세그먼트가 포함될 수 있습니다. 종종 이러한 변수 경로 세그먼트는 “URI 경로에서 데이터 가져오기” 에 설명된 대로 리소스 방법에 대한 매개 변수로 사용됩니다. 그러나 URI 컨텍스트를 통해 액세스할 수도 있습니다.
52.2.3.2. 경로 매개 변수를 가져오는 방법
UriInfo 인터페이스는 경로 매개변수 목록을 반환하는 예 52.1. “URI 컨텍스트에서 경로 매개 변수를 반환하는 방법” 에 표시된 두 가지 메서드를 제공합니다.
예 52.1. URI 컨텍스트에서 경로 매개 변수를 반환하는 방법
MultivaluedMap<java.lang.String, java.lang.String
>getPathParameters
MultivaluedMap<java.lang.String, java.lang.String
>getPathParameters
부울
decode
매개 변수를 사용하지 않는 getPathParameters()
메서드는 경로 매개 변수를 자동으로 디코딩합니다. URI 디코딩을 비활성화하려면 getPathParameters(false)
를 사용합니다.
값은 해당 템플릿 식별자를 키로 사용하여 맵에 저장됩니다. 예를 들어 리소스에 대한 URI 템플릿이 /{color}/box/{note} 인 경우 반환된 맵에는 키가 color
인 두 개의 항목이 있고 유의
합니다.
52.2.3.3. 예제
예 52.2. “URI 컨텍스트에서 경로 매개변수 추출” URI 컨텍스트를 사용하여 경로 매개 변수를 검색하는 코드를 표시합니다.
예 52.2. URI 컨텍스트에서 경로 매개변수 추출
import javax.ws.rs.Path; import javax.ws.rs.Get; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.core.MultivaluedMap; @Path("/monstersforhire/") public class MonsterService @GET @Path("/{type}/{size}") public Monster getMonster(@Context UriInfo uri) { MultivaluedMap paramMap = uri.getPathParameters(); String type = paramMap.getFirst("type"); String size = paramMap.getFirst("size"); } }