복붙노트

[SPRING] 봄 컨트롤러의 정규식

SPRING

봄 컨트롤러의 정규식

나는 문자의 패턴과 일치하는 경우에만 사용되는 요청 필터를 만들고자하는데, 그 다음 숫자이다. 그러나 나는 그것이 작동하도록 할 수 없습니다. 정규식으로 무언가를 시도 할 때마다 400 개의 오류가 계속 발생합니다.

만약 내가 다음을 사용한다면 그것은 작동하지만, 원하지 않는 숫자가없는 매핑을 포착한다.

@RequestMapping(value = "e{number}",
            method = RequestMethod.GET)

다음 조합을 시도했습니다.

@RequestMapping(value = "e{number}",
            params = "number:\\d+",
            method = RequestMethod.GET)

@RequestMapping(value = "e{number:\d+}",
            method = RequestMethod.GET)

@RequestMapping(value = "/e{^\\+?\\d+\$}",
            method = RequestMethod.GET)

@RequestMapping(value = "/{^\\e+?\\d+\$}",
            method = RequestMethod.GET)

해결법

  1. ==============================

    1.설명서에 따르면 {varName : regex}와 같은 것을 사용해야합니다. 예도 있습니다.

    설명서에 따르면 {varName : regex}와 같은 것을 사용해야합니다. 예도 있습니다.

    @RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}")
      public void handle(@PathVariable String version, @PathVariable String extension) {
        // ...
      }
    }
    
  2. ==============================

    2.다음을 사용해야합니다.

    다음을 사용해야합니다.

     @RequestMapping("/e{number:\\d+})
    

    \ d 자리 지정자 앞에 "이스케이프 처리 된 슬래시"가 있는지 확인하십시오.

  3. from https://stackoverflow.com/questions/18422368/regex-in-spring-controller by cc-by-sa and MIT license