반응형
@RequestParam과 @PathVariable은 주로 사용하는 형태의 파라미터를 전달하는 경우 사용한다.
Case 1 ) http://xxx.x.x?index=1&page=2
파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용
Case 2 ) http://xxxx.x.x/index/1
Rest api에서 값을 호출할 때 주로 많이 사용
@RequestParam ?
url뒤에 붙는 파라미터의 값을 가져올 때 사용한다.
ex) /getDriver?name="name에 담긴 value"
url이 전달될 때 name 파라미터(name에 담긴 value)를 받아오게 된다.
- Case 1의 경우 사용
- 어노테이션 괄호 안에 전달인자 이름(실제값)
- 하나 이상의 파라미터에서 사용할 수 있음.
- 스프링에서 지원하는 변환기에서 지원되는 모든 타입 가능.
@GetMapping("getBoard")
public String viewName( @RequestParam("name") String name,
@RequestParam("name2") String name2){
}
**만약 RequestParam에 key값이 존재하지 않을 경우
"BadRequest 로 4**" error가 발생. 이를 방지하기 위해 default 값을 설정해준다. ( " required=false " 속성을 꼭 명시)
@GetMapping("getDriver")
public String viewName( @RequestParam("name",required=false,defaultValue="")String name,
@RequestParam("name2",required="false,defaultValue="") String name2){
}
@PathVariable ?
url에서 각 구분자에 들어오는 값을 처리해야 할 때 사용한다.
@PostMapping("delete/{idx}")
@ResponseBody
public void testMethod(@PathVariable("idx") int id ){
return testService.deleteId(id);
}
- Case 2의 경우에 사용
중요 !
WAS같은 경우 URL에 특수문자나 구분기호 " , , ` , . " 등을 사용하면 인식을 못한다.
따라서 URL에 태우지 말고 JSON 형태로 HTTP BODY에 실어 보내야 한다 .!!
그러므로 여러개의 파라미터값을 삭제할 때 ex)1,2,3,4 이런식으로 url에 요청하면 안된다.
반응형
'spring' 카테고리의 다른 글
[SpringSecurity] 필터 (0) | 2023.08.22 |
---|---|
[SpringSecurity] FailureHandler 구현 (0) | 2023.08.02 |
[Spring Security] Exception (0) | 2023.07.26 |
서버 재기동시 세션 (0) | 2023.02.14 |
Mybatis쿼리문 다중 파라미터 사용 (0) | 2023.02.11 |