@PathVariable
가변인자 처리하기 위해 사용하는 키워드
게시물 번호로는 1~N번까지 다양하기 때문에 특정 번호에 대한 URL Mapping을 하면 매우
번거롭고 코드가 지저분하다.
그러므로 이와 같은 가변인자 처리를 통해 boardNo를 일관된 방식으로 처리한다.
@PathVariable("boardNo") Long boardNo
보드넘버가 들어오면 어이거 가변인자래 ? 들어온 숫자가 뭐니? 하면서 아라서 boardNo에 넣어줌
가변인자를 사용한 URL Mapping은 아래와 같이 {가변인자} 형태로 작성한다.
@DeleteMapping("/{boardNo}")
public void boardRemove (@PathVariable("boardNo") Long boardNo) {
log.info("boardRemove()");
service.remove(boardNo);
}
@GetMapping("/{boardNo}")
public VueBoard boardRead (@PathVariable("boardNo") Long boardNo) {
log.info("boardRead()");
return service.read(boardNo);
}
예를 들어 URL을 통해 변수를 전달한다고 하자.
http://localhost:8080/board?boardNo={$boardNo}
혹은 http://localhost:8080/board/{boardNo}
의 두가지 경우로 전달 가능하다.
위의 경우는 흔히 사용하는 GET 매핑이다.
아래의 경우는 RestApi 호출시 주로 많이 사용한다. URL 을 이용해 파라미터를 처리 할 수 있다는 뜻
아래의 경우에는 컨트롤러 부분에서는 아래와 같은 방식으로 받으면 된다.
@GetMapping(path="/board/{boardNo}")
public User userBean(@PathVariable Long boardNo){
}
1. @GetMapping path의 {변수} 괄호안에 URI에 사용한 변수 명을 입력한다.
GetMapping 뿐만 아니라 당연히 다른 Method도 가능하다. ( PostMapping, DeleteMapping, PutMapping......)
2. @PathVariable 어노테이션을 이용해서 {템플릿 변수} 와 동일한 이름을 갖는 파라미터를 추가하면 된다.
(PathVariable("boardNo") ) 이런식으로 변수 명을 적어 주어 매칭시켜도 된다.
'KH > Spring' 카테고리의 다른 글
[Spring] Spring MVC 에서 @ModelAttribute 란 ? (0) | 2022.12.04 |
---|---|
[Spring] redirect 객체 전달 : RedirectAttributes (0) | 2022.12.01 |
[Spring] @SessionAttributes 와 @ModelAttribute (0) | 2022.11.30 |
[Spring] AOP(Aspect Oriented Programming) (0) | 2022.11.28 |
[Spring] @Component와 Bean의 차이 (0) | 2022.11.28 |