Spring

[Spring Boot] @PathVariable과 @RequestParam - 파라미터 받기

2023. 4. 21. 21:23
목차
  1. @PathVariable 경로변수
  2. 1. 기본
  3. 2. @PathVariable 매칭
  4. 3. 다중 사용
  5. @RequestParam 요청 파라미터
  6. 기본
  7. required, defaultValue 옵션

@PathVariable 경로변수

PathVariable을 사용하면 리소스 경로에 식별자를 넣어서 동적으로 URL에 정보를 담을 수 있다.

URL 경로의 중괄호 { } 안쪽에 변수를 담고, 그 변수를 @PathVariable(" ")로 받아서 사용할 수 있다.


1. 기본

URL의{postId}와 매개변수 long orderId와 이름을 맞춰준다.

@GetMapping ("/order/{orderId}")
public String getOrder(@PathVariable String orderId){
    log.info("orderId : {}", orderId);
    
    return "orderId:"+ orderId;
}

요청 : http://localhost:8080/order/123

응답 : orderId:123


2. @PathVariable 매칭

PathVariable과 다른 변수명을 사용하려면 @PathVariable("orderId")로 url의 path-variable와 이름을 맞춰주고,

메서드에서 사용할 변수명을 다르게 설정할 수 있다.

@GetMapping ("/order/{orderId}")
public String getOrder(@PathVariable("orderId") String id){
    log.info("orderId : {}", id);
    
    return "orderId:"+ id;
}

요청 : http://localhost:8080/order/123

응답 : orderId:123


3. 다중 사용

여러 개의 PathVariable을 동시에 사용할 수 있다.

@GetMapping("/order/{orderId}/{amount}")
public String getOrder(@PathVariable String orderId, @PathVariable String amount){
    log.info("orderID : {}, amount : {}", orderId, amount);
    
    return "orderId:"+ orderId + "amount:" + amount;
}

요청 : http://localhost:8080/order/123/900

응답 : orderId:123 amount:900

 


@RequestParam 요청 파라미터

웹에서 쿼리 파라미터를 포함한 url 요청이 있을 때,

컨트롤러에서는 @RequestParam 어노테이션으로 파라미터 값을 읽어서 사용할 수 있다.


기본

/order url에 쿼리파라미터들이 붙은 요청이 들어오면, 아래와 같이 해당 파라미터들을 읽어서 사용할 수 있다. 

@GetMapping("/order")
public String getOrderRequestParam1(
        @RequestParam("orderId") String id,
        @RequestParam("orderAmount") String amount) {
        
    log.info("orderID : {}, orderAmount : {}", id, amount);
    
    return "orderId:" + id + " amount:" + amount;
}

요청 : http://localhost:8080/order? orderId=123&orderAmount=900

응답 : orderId:123 amount:900

 

required, defaultValue 옵션

required = false로 지정하면 필수값이 아니게 되고,

defaultValue로 해당 쿼리파라미터가 존재하지 않을 때 디폴트 값을 설정할 수 있다.

@GetMapping("/order")
public String getOrderRequestParam2(
        @RequestParam(value = "orderId", required = true) String id,
        @RequestParam(value = "orderAmount", required = false, defaultValue = "100") String amount) {
    log.info("orderID : {}, orderAmount : {}", id, amount);
    return "orderId:" + id + " amount:" + amount;
}

요청 : http://localhost:8080/order? orderId=123

응답 : orderId:123 amount:100

반응형

'Spring' 카테고리의 다른 글

[Spring Boot] PRG 패턴 ( Post - Redirect - Get )  (1) 2023.04.21
[Spring] 로깅 logging (@Slf4j)  (0) 2023.04.21
[Spring Boot] 스프링 인터셉터 (Spring Interceptor)  (0) 2023.04.21
[Spring] Bean Validation  (0) 2023.04.21
[Spring] 메시지, 국제화  (0) 2023.04.21
  1. @PathVariable 경로변수
  2. 1. 기본
  3. 2. @PathVariable 매칭
  4. 3. 다중 사용
  5. @RequestParam 요청 파라미터
  6. 기본
  7. required, defaultValue 옵션
'Spring' 카테고리의 다른 글
  • [Spring Boot] PRG 패턴 ( Post - Redirect - Get )
  • [Spring] 로깅 logging (@Slf4j)
  • [Spring Boot] 스프링 인터셉터 (Spring Interceptor)
  • [Spring] Bean Validation
HSRyuuu
HSRyuuu
Web Backend Developer happyhsryu
HSRyuuu
HS_dev_log
HSRyuuu
전체
오늘
어제
  • 전체 글 보기 (233)
    • Java (25)
    • Spring (27)
    • JPA & QueryDSL (13)
    • Database (17)
    • 자료구조 & 알고리즘 (30)
    • DevOps (10)
    • [ Computer Science ] (47)
      • Web & Network (14)
      • 프로그래밍 이론 (11)
      • 운영체제 (3)
      • 데이터베이스 이론 (5)
      • Linux 리눅스 (7)
    • [ Frontend ] (17)
      • Vue.js & Nuxt.js (9)
      • JSP_Thymeleaf (7)
    • [ 기타 ] (47)
      • 오픈소스 라이브러리 (5)
      • 코딩테스트 (13)
      • Trouble Shooting (7)
      • Tech Interview (6)
      • Book Review (9)
      • 끄적끄적... (5)
      • 개인 프로젝트 (2)

블로그 메뉴

  • 홈
  • 태그
  • github

공지사항

  • GitHub
  • 공부한 내용을 정리하고 기록하는 블로그 입니다.

인기 글

태그

  • Nuxt3
  • 클린코드
  • HTTP
  • 백엔드기술면접
  • Redisson
  • cleancode
  • 기술면접
  • 백엔드
  • 제로베이스
  • Linux
  • SpringBoot
  • web
  • 개발자
  • 자료구조
  • Spring
  • mybatis
  • 리눅스
  • Java
  • vue3
  • TechInterview
  • SQL
  • Redis
  • Database
  • springsecurity
  • MySQL
  • 백엔드스쿨
  • JPA
  • 트랜잭션
  • 백준
  • 백엔드공부

최근 댓글

최근 글

hELLO · Designed By 정상우.
HSRyuuu
[Spring Boot] @PathVariable과 @RequestParam - 파라미터 받기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.