반응형
@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";
}
}
반응형
'프로그래밍 > Spring & Spring boot' 카테고리의 다른 글
[Spring/스프링] @SessionAttributes를 이용하여 session에 값 담기 (0) | 2022.09.06 |
---|---|
[Spring / 스프링] @ModelAttribute를 이용하여 파라미터 전달 받기 (0) | 2022.09.06 |
[Spring/스프링] @PathVariable (0) | 2022.09.06 |
[Spring / 스프링] @RequestMapping , @GetMapping , @PostMapping (0) | 2022.09.06 |
[Spring / 스프링] Apache Maven / POM.xml / web.xml / root-context.xml / servlet-context.xml (0) | 2022.09.06 |