꼬마 개발자 탱구

차근차근 확실하게

Framework/Spring

[Spring] Controller > @RequestMapping 다중매핑 사용하기

나눈 탱구 2023. 5. 27. 20:22

@RequestMappring을 이용해 한개의 매서드로 여러 URL을 처리할 수 있는 방법을 다중 매핑이라고 하는데, 만약 다중 매핑을 하지않으면 이런식으로 동일한 소스가 여러개를 만들어야하는 불상사가 일어납니다.

   @RequestMapping("/index")
    public String projectInfo() {
        return "메인";
    }
    
    @RequestMapping("/main")
    public String projectInfo() {
        return "메인";
    }

 

다중매핑을 사용하면 한개의 매서드를 여러 이름으로 접근하여 처리할수있습니다.

 

1. URL 을 판별하여 분기처리

 @RequestMapping(value = {"/","/index","/main"})
    public String projectInfo() {
        return "메인";
    }

 

 

 

2. @PathVariable 사용

@Controller
public class HomeController {
    
    @RequestMapping("/{urlPath}")
    public String handleDynamicUrl(@PathVariable("urlPath") String urlPath) {
        if (urlPath.equals("url1")) {
            // URL '/url1'에 대한 처리 로직
            return "view1"; // 해당 URL에 대한 View 이름 반환
        } else if (urlPath.equals("url2")) {
            // URL '/url2'에 대한 처리 로직
            return "view2"; // 해당 URL에 대한 View 이름 반환
        } else {
            // 그 외의 URL에 대한 처리 로직
            return "error"; // 에러 View 이름 반환
        }
    }
}

 

● {urlPath}

: 변수로 사용되는 부분(동적으로 변하는 부분). 실제 요청 URL에서 해당 위치에 있는 값이 urlPath 변수로 전달됩니다.

 

● handleDynamicUrl() 메서드

:  urlPath 변수의 값을 확인하여 각 URL에 대한 분기 처리를 수행합니다.

 

위 두 가지 방법은 URL에 대한 분기 처리를 수행하는 방법 중 일부입니다. 각각의 방법은 상황에 맞게 선택하여 사용할 수 있으며, 프로젝트의 요구사항과 개발 환경에 따라 적합한 방법을 선택하여 구현하면 됩니다.