프로그래밍/Spring & Spring boot
[Spring스프링] @RequestParam / required / defaultValue
pupu91
2022. 9. 6. 17:21
반응형
@RequestParam
: 요청 파라미터를 매핑하여 호출 시 값을 넣어주는 어노테이션
변수앞에 작성하며 사용할 속성 값과 매개변수의 이름이 다른 경우 @RequestParam("name")으로 설정
어노테이션은 생략 가능 하지만 명시적으로 작성하는 것이 의미 파악에 쉬움
1) @RequestParam으로 값 꺼내기
@Controller
@RequestMapping("/first/*")
public class FirstController {
@GetMapping("modify")
public void modify() {} 요청에 따른 화면전환 메소드
@PostMapping("modify")
public String modifyMenuPrice(Model mode,
@RequestParam String modifyName, @RequestParam int modifyPrice){
String message = modifyName + "메뉴의 가격을" + modifyPrice + "원으로 변경하였습니다";
model.addAttribute("message",message);
return "first/messagePrinter";
}
}
2. required 속성 활용
: 전달하는 name 속성이 일치하는 것이 없는 경우 400(잘못 된 요청)에러가 발생하는데
required 속성을 false로 설정하면 해당 name 값이 존재하지 않아도 null로 처리하며 에러가 발생하지 않음
메소드 ( @RequestParam (required = false) 변수) / 기본 값이 true이기 때문에 설정하지 않으면 에러 발생
@Controller
@RequestMapping("/first/*")
public class FirstController {
@GetMapping("modify")
public void modify() {} 요청에 따른 화면전환 메소드
@PostMapping("modify")
public String modifyMenuPrice(Model mode,
@RequestParam (required = false) String modifyName, @RequestParam int modifyPrice){
String message = modifyName + "메뉴의 가격을" + modifyPrice + "원으로 변경하였습니다";
model.addAttribute("message",message);
return "first/messagePrinter";
}
}
3. defaultValue 속성 활용
: 입력 값 없이 넘어오게 되면 " "와 같은 빈 문자열이 넘어오게 되어 parsing 관련 에러가 발생할 수 있음(400-잘못 된 요청)
값이 넘어오지 않는 경우 defaultValue를 이용하여 기본 값 설정 가능
메소드( @RequestParam (defaultValue = "0") 변수 )
@Controller
@RequestMapping("/first/*")
public class FirstController {
@GetMapping("modify")
public void modify() {} 요청에 따른 화면전환 메소드
@PostMapping("modify")
public String modifyMenuPrice(Model mode,
@RequestParam (required = false) String modifyName, @RequestParam (defaultValue = "0") int modifyPrice){
String message = modifyName + "메뉴의 가격을" + modifyPrice + "원으로 변경하였습니다";
model.addAttribute("message",message);
return "first/messagePrinter";
}
}
반응형