개발노트/Spring

[Spring] @PathVariable , @RequestParam 차이

Dahoon06 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