같은 url도 get,post로 나눠서 보여줄 거 다르게 할 수 있음
// /posts/write를 GET 요청하면 글쓰기 폼을 보여줌
@GetMapping("/posts/write")
public String write(@ModelAttribute("form") PostWriteForm form) {
return "post/write";
}
// /posts/write를 POST 요청하면 글쓰기 처리
@PostMapping("/posts/write")
public String doWrite(
@ModelAttribute("form") @Valid PostWriteForm form, BindingResult bindingResult,
//postWriteForm 이라는 이름으로 form 데이터를 받아옴.(@Attribute 생략 가능)
// @Valid로 유효성 검사 (PostWriteForm 클래스에 정의된 제약 조건들)
// BindingResult result : 유효성 검사 결과를 담는 객체
Model model){
if(bindingResult.hasErrors()) {
return "post/write";
}
Post post = postService.write(form.title, form.content);
model.addAttribute("id", post.getId());
return "post/writeDone";
}
+)
<meta http-equiv="refresh" content="이동하기 원하는 링크"/>
writedone에서 화면 자동 이동이 가능하다
그러나 그냥 컨트롤러에서 바로 이동시키는 편이 더 좋다.
return "redirect:/post/write";