- GET, POST 등등 요청에 따라 클라이언트에서 서버로 URL에 파라미터를 같이 전달하는 경우가 있다. Spring에서는 이러한 전달인자를 처리하는데 두 가지 방법을 제공한다.
- URL 변수 (@PathVariable)
- 예시 - http://127.0.0.1/index/1
- Query String (@RequestParam)
- 예시 - http://127.0.0.1?index=1&page=2
- 예시 - http://127.0.0.1?index=1&page=2
1. URL 변수 (@PathVariable)
- Rest api에서 값을 호출할 때 주로 많이 사용
- URL을 처리할 때는 @PathVariable을 사용
- URL에서 구분자에 들어오는 값을 처리해야 할 때 사용
@PostMapping("delete/{idx}")
@ResponseBody
public void testMethod(@PathVariable("idx") int id ){
return testService.deleteId(id);
}
- 주의
- URL에 특수문자나 구분기호 " , , ` , . " 등을 사용하면 인식을 못한다.
따라서 URL에 태우지 말고 JSON 형태로 HTTP BODY에 실어 보내야 한다.
그러므로 여러개의 파라미터값을 삭제할 때 ex)1,2,3,4 이런식으로 url에 요청하면 안된다.
- URL에 특수문자나 구분기호 " , , ` , . " 등을 사용하면 인식을 못한다.
2. Query String (@RequestParam)
- 파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용한다.
- @RequestParam 어노테이션의 괄호 안의 경우 전달인자 이름(실제 값을 표시)
@GetMapping("getDriver")
public String viewName( @RequestParam("name") String name, @RequestParam("name2") String name2){
//위처럼 하나 이상의 타입을 적용할 수 있다.
//스프링에서 지원하는 변환기에서 지원되는 모든타입을 변환가능하다.
//RequesParam은 하나 이상 파라미터에서 사용 가능핟.
}
- url이 전달될 때 name 파라미터(name에 담긴 value)를 받아오게 된다.
즉, @RequestParam("실제 값") String 설정할 변수 이름
ex) /getDriver?name="name에 담긴 value"
- 이렇게 @RequestParam의 경우 url뒤에 붙는 파라미터의 값을 가져올 때 사용한다.
- 주의
- 만약 RequestParam에 key값이 존재하지 않을 경우 "BadRequest 로 4**" error가 발생한다.
- 이를 방지하고자 default 값을 설정해줍니다. 바로 "DefaultValue"를 이용하여 기본 값을 설정해준다.
( " required=false " 속성을 꼭 명시해줘야 한다. )
required = false 속성을 명시함으로써 키값이 존재하지 않다고 해서 BadRequest가 발생하지 않게 된다.
그리고 존재하지 않다면 String 변수에 default로 "" 값이 들어가게 된다.
@GetMapping("getDriver")
public String viewName( @RequestParam("name",required=false,defaultValue="")
String name, @RequestParam("name2",required=false,defaultValue="") String name2){
//이런식으로 defaultValue를 지정하려면 required 속성을 명시해줘야 합니다.
}
참고 자료
https://2ham-s.tistory.com/290
@RequestParam과 @PathVariable?
컨트롤라에서 Requestparam으로 파라미터 값을 넘겨받을 때 아무 생각 없이 사용하곤 했는데, 이번 기회에 이 어노테이션에 대해 정리해 보고자 한다. 스프링에서는 컨트롤러로 사용할 클래스 상단
2ham-s.tistory.com
https://velog.io/@jcinsh/Query-string-path-variable
올바른 URL 설계 : 1) Query string과 Path Variable 이해하기
이 글은 When Should You Use Path Variable and Query Parameter?란 영문글을 한글로 요약 정리한 것입니다. 자세한 내용은 원문을 참고해 주세요.웹에서 특정 데이터를 전송하고 받기 위해서는 어디(End-point)에
velog.io
https://so-easy-coding.tistory.com/8
[Spring Boot] @PathVariable 사용법
Request가 들어오는 타입에 따라 ... 받는 방법을 크게 4가지 정도로 나눠서 앞으로 하나씩 살펴보자. URL 변수 (@PathVariable) Query String (@RequestParam) Body Form @PathVariable 이란? REST API에서 URI에..
so-easy-coding.tistory.com
https://elfinlas.github.io/2018/02/18/spring-parameter/
Spring에서 @RequestParam과 @PathVariable
Spring에서 Controller의 전달인자…Spring을 사용하다 보면 Controller 단에서 클라이언트에서 URL에 파라메터를 같이 전달하는 경우가 있습니다.주로 사용하는 형태는 아래의 두 가지가 대표적인 케이
elfinlas.github.io
'IT 지식 공부' 카테고리의 다른 글
[JAVA/Springboot] DTO 개념 (0) | 2022.05.26 |
---|---|
[JAVA] RDBMS 개념 (0) | 2022.05.24 |
[JAVA] JPA 개념 (0) | 2022.05.23 |
[JAVA] Getter와 Setter 사용하는 이유? (0) | 2022.05.23 |
[JAVA] Gradle 개념 (0) | 2022.05.21 |