[Spring] @PathVariable , @RequestParam 차이
2021. 8. 26. 12:49
728x90
반응형
두 어노테이션 다 데이터를 전달하기 위하여 사용된다.
http에서는 요청간의 데이터를 보장해주지 않기 때문에 이를 저장할 공간이 필요하다.
@PathVariable
: URL경로에 변수를 넣는것 입니다.
ex)127.0.0.1:8080/abcd/abcd
RESTful API에서 사용합니다.
@PostMapping("delete/{idx}")
@ResponseBody
public JsonResultVo postDeleteFactory(@PathVariable("index") int indexNum) {
return factoryService.deleteFacotryData(indexNum);
}
WAS같은 경우 URL에 특수문자나 구분기호 " , , ` , . " 등을 사용하면 인식을 못한다.
따라서 URL에 직접 보내는게 아닌 JSON 형태로 HTTP BODY에 실어 보내야 한다.
그러므로 여러개의 파라미터값을 삭제할 때 ex)1,2,3,4 이런식으로 url에 요청하면 안된다.
실제 사용은 2개다 복합적으로 사용한다.
@GetMapping("test")
public List<Test> testMethod( @PathVariable("idx) int id, @RequestParam(value="date",required="false)
Date userDate) {
}
@RequestParam
: URL 파라미터로 값을 넘기는 방식입니다.
ex)127.0.0.1:8080?a=b&c=d
@GetMapping("read")
public ModelAndView getFactoryRead(@RequestParam("index") int indexNum, SearchCriteria criteria)
{
//...
}
위의 경우 url이 전달될 때 name 파라미터(name에 담긴 value)를 받아오게 됩니다.
즉, @RequestParam("실제 값") String 설정할 변수 이름 이런식으로 표현
728x90
반응형
'개발노트 > Spring' 카테고리의 다른 글
[Spring] Spring Security OAuth 2.0, JWT (0) | 2021.08.26 |
---|---|
[Spring] @Controller, @RestController 차이 (0) | 2021.08.26 |
[Spring Boot] Thymeleaf (0) | 2021.07.09 |
[Spring] JPA 관련 레퍼런스 (0) | 2021.07.05 |
[Spring] Transaction (0) | 2021.06.21 |