< >
@RequestParam
쿼리스트링 방식으로 변수에 값을 저장해서
다른 페이지로 전달하는 어노테이션
옵션
( 물론 안써도 되긴하나 추천 x )
옵션 | 설명 |
defaultValue="값" | 쿼리스트링 변수에 값이 null 이면 디폴트값으로 바꾸어줌 ( 웬만하면 이걸 쓰자 ) |
정의
함수명(Model model , @RequestParam("") String 변수명) {}
@GetMapping("경로")
함수명(Model model , @RequestParam(defaultValue="") String 변수명) {
model.addAttribute("key" , 변수명) // 값 전달하기
return "페이지";
}
웹 브라우저 주소창 입력
쿼리 스트링방식 : ( URL?변수명=값 )
protocol://IP:PORT/URL?변수명=값
✅ Spring Controller required 속성
[ required=false 예제]
public String hello(@RequestParam("name") String name,
// required 조건이 없으면 기본값은 true, 필수 파라미터.
// 파라미터 pageNo가 존재하지 않으면 Exception 발생.
@RequestParam(value="pageNo", required=false) String pageNo){
// 파라미터 pageNo가 존재하지 않으면 String pageNo는 null.
@RequestParam은 HTTP 요청 파라미터를 컨트롤러 메소드의 파라미터로 전달받을 때 사용된다.
JSP에서 request.getParameter(); 와 비슷하다고 볼 수 있다.
이 @RequestParam이 적용된 파라미터는 필수파라미터다.
그래서 @RequestParam 어노테이션에 명시한 HTTP 요청 파라미터가 존재하지 않을 경우, 스프링 MVC는 잘못된 요청을 의미하는 400 응답 코드를 웹 브라우저에 전송하는 것이다.
1) 필수가 아닌 파라미터인 경우, required 속성 값을 주어 false로 지정해주면 된다.
required 속성 값을 따로 작성하지 않을 경우, 기본 값은 true로 지정되어 있다.
@RequestParam(value="query", required=false) String query
필수가 아닌 파라미터의 값이 존재하지 않을 경우는 null 값을 할당한다. 하지만 null을 할당할 수 없는 기본 데이터 타입일 경우에는 타입 변환 에러가 발생한다.
2) RequestParam 값이 Null 일 때, 예외 처리
기본 데이터 타입을 사용할 때는 요청 파라미터가 존재하지 않을 때 기본 값을 할당하는 경우가 많다. 이런 경우, defaultValue 속성을 이용해서 기본 값을 지정할 수 있다.
@RequestParam(value="page", defaultValue="1") int page
'SpringBoot > code' 카테고리의 다른 글
SpringBoot - @PathVariable (0) | 2023.10.05 |
---|---|
SpringBoot - @ModelAttribute (0) | 2023.10.05 |
Springboot - Model (인터페이스) (0) | 2023.10.04 |
SpringBoot - 어노테이션 (0) | 2023.10.04 |
SpringBoot - HelloWorld (0) | 2023.10.04 |