스프링에서 controller로 이동시 veiw에서 url로 파라미터를 전달할 수 있는데, 대표적 형태가 2가지 형태가 있다.
1유형 : http://www.test.com/board?seq=1
2유형 : http://www.test.com/board/1
@PathVariable 과 @RequestParam어노테이션은 url파라미터로 전달받은 value를 메서드의 파라미터로 받을 수 있게 해주는 어노테이션이다.
@RequestParam사용법
1유형 : http://www.test.com/board?seq=2
@GetMapping("/board")
public String save(@RequestParam("seq") int seq){
.....
}
위와 같을 경우 int seq로 들어온 값은 1이 된다.
파라미터의 value로 null이 들어오는 것을 방지하기 위해선 아래와 같이 required 설정을 false로 한다. (defualt : true)
String형으로 데이터 타입을 변환한 이유는 seq가 ""이 들어올 경우 NumberFormatException이 발생하게 된다.
@GetMapping("/board")
public String save(@RequestParam(value = "seq", required = false) String seq){
.....
}
@PathVariable 사용법
2유형 : http://www.test.com/board/1
@GetMapping("/board/{seq}")
public String save(@PathVariable int seq){
.....
}
위와 같을 경우 int seq로 들어온 값은 1이 된다.
주의할 점은 URL에 특수문자나 구분기호 " , , ` , . " 등을 사용하면 인식을 못한다.
@GetMapping("/board/{seq}")
public String save(@PathVariable("seq") int num){
.....
}
변수명을 바꿔서 사용하고 싶은 경우 @PathVariable('템플릿 변수명') url로 들어온 템플릿 변수명과 맵핑을 시켜주면 된다.
@RequestParam와 @PathVariable 복합 사용법
http://www.test.com/user/user?name=test
@PostMapping("/user/{category}")
public String save(@PathVariable("category") String category, @RequestParam(value = "name", required = false) String name){
....
}
위와 같이 코드를 실행하게 되면 category = user, name = test가 된다.
'IT > Spring' 카테고리의 다른 글
[Spring Boot + Security] SecurityConfig 설정 (Feat. gradle) (1) | 2021.11.30 |
---|---|
[Spring] 의존성 관리방법(Dependency Injection- Setter Injection/Constructor Injection) (0) | 2021.07.18 |
[Spring] Spring Bean Configuration File의 beans, bean속성과 속성값 이해하기 (0) | 2021.07.18 |
[Spring] AOP (Log 사용예시) (0) | 2021.07.14 |
[Spring] Dynamic Web Project로 스프링 프로젝트 생성하기 (2) | 2021.07.05 |