[Spring] Model에 값을 저장하는 방법 2가지(Form클래스), 폼 입력값 유효성 체크

류넹·2024년 3월 6일
1

Spring

목록 보기
25/50

📌 Model에 값을 저장하는 방법

1. 요청핸들러 메서드의 매개변수에 Model로 담기

@GetMapping("/register")
public String form(Model model) {
	model.addAttribute("userRegisterForm", new UserRegisterForm());

	return "form"; // 뷰페이지 이름
}
  • 스프링이 요청핸들러 메소드의 매개변수를 조사한다.
  • 스프링이 Model객체를 생성한다.
  • 스프링이 Model객체를 요청핸들러 메소드의 매개변수로 전달한다.
  • 개발자가 UserRegisterForm객체를 생성해서 Model객체에 담는다.
  • form.jsp로 내부이동 시키는 문자열을 반환한다.
  • 스프링이 ModelAndView객체를 생성한다.
    • ModelAndView객체에 Model을 저장한다.
    • ModelAndView객체에 뷰페이지 이름을 저장한다.




2. 요청핸들러 메서드의 매개변수에 Form 객체 그대로 담기

@GetMapping("/register")
public String form(UserRegisterForm userRegisterForm) {
	return "form"; // 뷰페이지 이름
}
  • 스프링이 요청핸들러 메소드의 매개변수를 조사한다.
  • 스프링이 UserRegisterForm객체를 생성한다.
  • 요청파라미터를 조사해서 UserRegisterForm객체의 멤버변수에 값을 채운다.
    (지금은 요청파라미터 값이 없기 때문에 필드에 값이 저장되지 않는다.)
  • form.jsp로 내부이동 시키는 문자열을 반환한다.
  • 스프링이 ModelAndView객체를 생성한다.
    • ModelAndView객체에 UserRegisterForm객체를 저장한다.(요청 핸들러 메소드의 매개변수에 정의된 것은 전부 모델에 저장한다.)
    • ModelAndView객체에 뷰페이지 이름을 저장한다.




✔️ 폼 입력값 유효성 체크

  • 상단의 public class UserRegisterForm 2개는 서로 다르다.
  1. 좌측의 첫번째 클래스는 navbar의 회원가입을 통해 최초 진입해서 값이 들어있지 않고,
  2. 우측의 두번째 클래스에는 회원가입 폼에서 회원가입 버튼을 클릭했지만 유효성 검사를 통과하지 못해서 입력한 값이 담겨 있는 상태
profile
학습용 커스터마이징 간단 개발자 사전

0개의 댓글