@PathVariable, @RequestParam
- @PathVariable:
URL 경로에 포함된 변수
를 받아오는데 사용
- @RequestPara: HTTP 요청의 파라미터를 받아오는데 사용
@PostMapping("/create/{id}")
public String createAnswer(
Model model,
@PathVariable("id") Integer id,
@RequestParam(value="content") String content) {
Question question = this.questionService.getQuestion(id);
return String.format("redirect:/question/detail/%s", id);
}
- 참고사항
어노테이션 | 쉽게 | 데이터 출처 | 용도 | |
---|
@RequestBody | 택배 상자를 열어 물건을 꺼낸다 | 요청 본문 (JSON 등) | 복잡한 객체 데이터 받기 | |
@ResponseBody | 포장된 택배를 손님에게 보낸다 | 응답 본문 | 데이터를 JSON 등으로 반환 | |
@RequestParam | 주문서에서 특정 내용을 읽는다 | URL 쿼리 파라미터 | 간단한 데이터 받기 (숫자/문자열) | |
@Valid
- 객체의 유효성 검사(Valiodation)을 수행할 때 사용
- 주로 MVC와 함께 사용하며, 클라이언트에서 전달된
데이터가 올바른지 자동으로 검사
하고, 문제가 있으면 에러를 처리
할 수 있음
- BindingResult:
Spring이 자동으로 생성해주는 변수
로, 컨트롤러 메서드의 매개변수에 @Valid와 함께 사용될 때 자동으로 만들어 짐
@Controller
@RequestMapping("/user")
public class UserController {
@PostMapping("/create")
public String createUser(
@Valid UserForm userForm,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "user-form";
}
return "redirect:/success";
}
}