웹 개발

Spring Controller에서 @PathVariable에 특수문자 허용하는 방법

노루아부지 2022. 2. 13. 20:54
반응형

Spring Controller에서 특히 REST API에서 특수문자를 허용해야 하는 경우가 있습니다.

(특정 버전 이후에는 특수문자가 그냥 허용된다고 합니다.)

예를 들어서 다음과 같은 경우입니다.

 

 

문자가 잘리는 예시

1. 요청 URL

GET http://localhost:8080/test/yjh5369@tistory.com

 

2. Controller

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
public class TestController {
  @GetMapping("/user/{email}")
  public String getUserInfo(@PathVariable String email) {
    log.info("email:"+email);
    return email;
  }
}

 

 

특수문자를 허용하는 방법

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
public class TestController {
  @GetMapping("/user/{email:.+}")
  public String getUserInfo(@PathVariable String email) {
    log.info("email:"+email);
    return email;
  }
}

 

 

[참고]

https://stackoverflow.com/questions/16332092/spring-mvc-pathvariable-with-dot-is-getting-truncated

728x90
반응형
loading