웹 개발

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