Validation을 이용하여 값이 입력되었는지 등등을 설정해주었다.
@AllArgsConstructor
@Getter
public class QuestionForm{
@NotEmpty(message = "제목은 필수 항목입니다.")
@Size(max = 200, message = "제목을 200자 이하로 입력해주세요.")
private String subject;
@NotEmpty(message = "내용은 필수 항목입니다.")
private String content;
}
org.springframework.validation.BeanPropertyBindingResult
프로젝트를 실행시켜 값이 제대로 입력되지 않았을 경우, 에러 문구가 잘 뜨는지 확인하고자 했는데, 이러한 오류가 발생했다!
이유는, Controller에서 찾을 수 있었다!!
@PostMapping("/create")
public String questionCreate(@Valid QuestionForm questionForm, Model model, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "question_form";
}
questionService.create(questionForm.getSubject(), questionForm.getContent());
return "redirect:/question/list";
}
@Valid 어노테이션이 붙은 questionform 뒤에 바로 BindingResult가 위치해야 오류가 발생하지 않는다.
@PostMapping("/create")
public String questionCreate(@Valid QuestionForm questionForm, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
return "question_form";
}
questionService.create(questionForm.getSubject(), questionForm.getContent());
return "redirect:/question/list";
}
순서를 바꿔주어서 해결
https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann-arguments
Web on Servlet Stack
Spring Web MVC is the original web framework built on the Servlet API and has been included in the Spring Framework from the very beginning. The formal name, “Spring Web MVC,” comes from the name of its source module (spring-webmvc), but it is more com
docs.spring.io
반응형