Web개발/Java

Url PathVariable 변수명 가져오기

테니스치는개발자 2020. 3. 5. 16:32

request 에서 URL 정보를 가져왔을때, url 에 있는값이 PathVariable 인지 알수가 없음.

 

그래서 URL 에서 pathVariable 변수명으로 치환하기 위한 로직. (이 URL 을 가져와서 URL 별 권한이 있는지 DB에서 조회하기 위해서 사용함)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    
/*
*  3. PathVariable 정보 Map 으로 가져오기
*/
Map<StringString> pathVariables = (Map<StringString>) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
 
// URL 에서 PathVariable 부분을 replace
Iterator<String> itr = pathVariables.keySet().iterator();
String key = null;
String value = null;
String[] splitStr = url.split("/");
while (itr.hasNext()) {
    key = (Stringitr.next();
    value = pathVariables.get(key);
    for (int i = 0; i < splitStr.length; i++) {
        if (splitStr[i].equals(value)) {
            splitStr[i] = "{" + key + "}";            
            }
    }
    url = String.join("/"Arrays.asList(splitStr));