복붙노트

[SPRING] URI 구문 분석을위한 Spring 유틸리티

SPRING

URI 구문 분석을위한 Spring 유틸리티

기존 스프링 기능을 사용하여 URL에서 경로 변수 및 쿼리 매개 변수를 추출하고 싶습니다. MVC @RequestMapping 또는 UriComponentsBuilder에 유효한 경로 형식 문자열이 있습니다. 나는 또한 실제 경로가있다. 그 경로에서 경로 변수를 추출하고 싶습니다.

예를 들어.

String format = "location/{state}/{city}";
String actualUrl = "location/washington/seattle";
TheThingImLookingFor parser = new TheThingImLookingFor(format);
Map<String, String> variables = parser.extractPathVariables(actualUrl);
assertThat(variables.get("state", is("washington"));
assertThat(variables.get("city", is("seattle"));

UriComponentsBuilder의 역함과 같습니다. Javadocs를 읽었을 때 파싱 기능이 없습니다.

해결법

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

    1.여기 간다:

    여기 간다:

        String format = "location/{state}/{city}";
        String actualUrl = "location/washington/seattle";
        AntPathMatcher pathMatcher = new AntPathMatcher();
        Map<String, String> variables = pathMatcher.extractUriTemplateVariables(format, actualUrl);
        assertThat(variables.get("state"), is("washington"));
        assertThat(variables.get("city"), is("seattle"));
    
  2. ==============================

    2.가장 먼저 볼 것은 org.springframework.web.servlet.mvc.method.annotation.PathVariableMethodArgumentResolver의 소스 코드입니다. 이것은 MVC의 @PathVariable 주석에 사용되는 리졸버입니다. Spring 코드가 무엇을하는지 보려면 resolveName 메소드를보십시오. 그곳에서 MVC가 사용하는 클래스를 찾을 수 있어야합니다. 그런 다음 요구 사항을 충족시킬 수 있는지 확인할 수 있습니다.

    가장 먼저 볼 것은 org.springframework.web.servlet.mvc.method.annotation.PathVariableMethodArgumentResolver의 소스 코드입니다. 이것은 MVC의 @PathVariable 주석에 사용되는 리졸버입니다. Spring 코드가 무엇을하는지 보려면 resolveName 메소드를보십시오. 그곳에서 MVC가 사용하는 클래스를 찾을 수 있어야합니다. 그런 다음 요구 사항을 충족시킬 수 있는지 확인할 수 있습니다.

  3. from https://stackoverflow.com/questions/26347868/spring-utility-for-parsing-uris by cc-by-sa and MIT license