교재 : 스프링 코딩 공작소
https://thebook.io/080266/0182/
경로 변수
- 웹 요청 URL에 포함된 파라미터 값을 전달 받는데 사용하는 변수
- @RequestMapping에 괄호({ })를 사용하여 웹 요청 URL에 포함된 요청 조건 값을 전달함
- 괄호 안에 있는 값이 명시 된 것이 경로 변수
- 하나, 두개 이상의 경로 변수를 포함 할 수 있음
코드 예제
// 경로 변수 이름을 그대로 사용할 때
@RequestMapping("경로 변수")
public String 메서드 이름(@PathVariable 경로 변수, ...) {
...
}
// 경로 변수 이름을 재정의하여 사용할 때
@RequestMapping("경로 변수")
public String 메서드 이름(@PathVariable(경로 변수) 매개변수, ...) {
...
}
사용자의 웹 요청 URL에 포함된 경로 변수의 값은 요청 처리 메소드의 매개변수 데이터 타입에 맞게 자동으로 변환됨
@PathVariable 사용한 예시
1. @RequestMapping("/home")
@GetMapping("/exam01/{bookId}")
: 해당 경로값이 들어가 있다면 아래 처리함
2. {bookId} 와 @PathVariable String bookId
: 괄호({ })의 값을 String타입의 bookId에 저장함
3. model.addAttribute("data", "~~~)
: 파라미터 값에 Model을 선언했던 model에 bookId를 저장함(addAttribute)
4. return "webpage06"
: webpage06의 이름의 jsp 파일을 불러옴(입력한 데이터를 보여주기 위해)
Check!
@PathVariable에 설정된 매개변수는
int, long, Date, .... : 어떤 타입이든 가능
타입 에러가 생성된다면 -> TypeMismatchException예외 발생
메소드의 매개변수가 int타입이라면 반드시 숫자로 해줘야함
else
@MatrixVariable도 있음
▼ 표 6-1 @MatrixVariable의 속성
속성 | 타입 | 설명 |
defaultValue | String | 기본값으로 대체하여 사용합니다. |
name | String | 매트릭스 변수의 이름입니다. |
pathVar | String | 하나 이상의 경로 구분(/)에 동일한 이름을 명확하게 구분하는 데 사용합니다. 매트릭스 변수가 있는 URI 경로 변수의 이름입니다. |
required | boolean | 매트릭스 변수가 요구되는지 여부를 설정합니다. |
value | String | 매트릭스 변수 ‘name=value’에서 name을 가리킵니다. |
@RequestParam
메소드의 매개변수에 설정
기본값은 웹 요청 URL로 전송되는 요청 파라미터 이름과 똑같이 설정해야함
@RequestParam ------> @RequestMapping
코드 사용 예시
// 요청 파라미터를 그대로 사용할 때
@RequestMapping("요청 경로")
public String 메서드 이름(@RequestParam 요청 파라미터, ...) {
...
}
// 요청 파라미터를 재정의하여 사용할 때
@RequestMapping("요청 경로")
public String 메서드 이름(@RequestParam(요청 파라미터) 매개변수, ...) {
...
}
속성값
▼ 표 6-2 @RequestParam의 속성
옵션 요소 | 타입 | 설명 |
defaultValue | String | 요청 매개변수가 없거나 빈 값이면 기본값으로 대체하여 사용합니다. |
name | String | 전달하는 요청 매개변수의 이름입니다. |
required | boolean | 요청 매개변수가 요구되는지 여부를 설정합니다. |
value | String | name()에 대한 별칭입니다. |
기본적으로 파라미터 값을 가져올 때 사용하는 것임ㅁ
!!파라미터 값은 jsp 파일에 있는 값과 동일해야함!!
'백 > Spring, Spring Boot' 카테고리의 다른 글
[Spring] 뷰 리다이렉션 : 현제 페이지에서 다른 페이지로 이동하기 jsp redirect방식과 forward방식 (0) | 2023.07.04 |
---|---|
[Srping] 스프링 폼 태그 (form tag) jsp파일에 값 입력하기 input (0) | 2023.07.04 |
[Spring] 한글 깨짐 방지 (0) | 2023.07.04 |
[Spring] JAVA 애노테이션 Annotation(@) 알아보기 (0) | 2023.06.27 |
[Spring] 웹 애플리케이션 계층 구조 (0) | 2023.06.27 |