반응형
  • @PathVariable

    • request uri패턴에서 일부를 argument로 받는 방법.
    • Uri 패턴에서 이름과 argument의 이름이 다를경우 ()안에 명시해준다.
      • @PathVariable("id") Integer idvalue
    • type conversion을 알아서 해준다. (String으로 받은 id값이 integer로 변환될 수 있다.)
    • 값이 반드시 있어야 한다. (required = false)옵션으로 바꿀 수 있긴하다.
    • Optional을 지원한다. (@PathVariable Optional<String> id)
    • 사용예제
    @GetMapping("/events/{id}")
    @ResponseBody
    public Event getEvent(@PathVariable Integer id) {
      Event event = new Event();
      event.setId(idvalue);
      return event;
    }
  • @MatrixVariable

    • @PathVariable과 다르게 키/값 쌍의 데이터를 argument로 받는 방법.

    • Type conversion을 지원

    • 값이 반드시 있어야 한다.

    • Optional을 지원

    • 이 Annotation을 사용하려면 아래와 같은 설정으로 이 기능을 활성화 해야함.

      @Configuration
      public class WebConfig implements WebMvcConfigurer {
      
          @Override
          public void configurePathMatch(PathMatchConfigurer configurer) {
              UrlPathHelper urlPathHelper = new UrlPathHelper();
              // 세미콜론을 없애지 않도록 설정.
              urlPathHelper.setRemoveSemicolonContent(false);
              configurer.setUrlPathHelper(urlPathHelper);
          }
      
      }
    • 사용예제
    // request : '../events/1;name=hooong'
    
    @GetMapping("/events/{id}")
    @ResponseBody
    public Event getEvent(@PathVariable Integer id, 
                          @MatrixVariable String name) {
      Event event = new Event();
      event.setId(idvalue);
      event.setName(name);
      return event;
    }
반응형

BELATED ARTICLES

more