티스토리 뷰

Spring

[spring] Query String 쿼리 스트링

페루나쵸 2023. 11. 13. 17:21

🩵Query String 쿼리 스트링

 

 

?value=dfsdf와 같은 형태로 전달되는 부분은 쿼리 스트링(Query String)인데,

쿼리 스트링은 URL에 추가적인 매개변수를 전달하는 데 사용된다.

 

@GetMapping("/example")
public String handleRequest(@RequestParam(value = "param1") String customName) {
    // customName을 사용하여 로직을 수행합니다.
    // 요청 파라미터에서 param1이라는 이름의 값이 추출됩니다.
    
    return "examplePage";
}

 

 

?param1=입력값과 같이 요청 파라미터를 전달하면,

Spring은 해당 요청 파라미터를 추출하여 customName 변수에 할당

 

 

이해가 안될 수도 있으니 위 코드에 한 줄 추가 해보았습니다!

 

@GetMapping("/example")
public String handleRequest(@RequestParam(value = "param1") String customName) {
    // customName을 사용하여 로직을 수행합니다.
    // 요청 파라미터에서 param1이라는 이름의 값이 추출됩니다.
    
    System.out.println("받은 param1의 값 : " + customName);
    
    return "examplePage";
}

 

 


 

 

 

그리고 이건 defaultValue인데, 만일 파라미터가 없는 경우에 자동으로 할당해주기 위해 사용

@GetMapping("/example")
public String handleRequest(@RequestParam(value = "param1", defaultValue = "default") String customName) {
    // customName을 사용하여 로직을 수행합니다.
    // 만약 요청 파라미터에서 param1이라는 이름의 값이 전달되지 않았다면, customName에는 "default"가 할당됩니다.
    
    return "examplePage";
}

 

 

만일 (@RequestParam(value = "param1") 처럼 특정한 속성을 지정하지 않으면

기본적으로 메서드 파라미터의 이름과 동일한 이름의 요청 파라미터를 찾아서 매핑합니다!

즉, 아무런 속성을 지정하지 않으면 요청 파라미터의 이름과 메서드 파라미터의 이름이 일치해야 합니다

?param1=11로 받았으면 String param1로 받아야 한다는 것!