Inflearn Community Q&A
로그인 시 GetMapping에 @ModelAttribute를 넣어주는이유
Written on
·
757
0
안녕하세요 로그인 기능 작성할 때 GetMapping에서도 ModelAttribute를 넣어주는 이유가 혹시 thymeleaf작성시 th:object=${loginForm}을 넣어주기 위해서 작성하는건가요..?? 이 부분이 궁금하여 질문드립니다. 감사합니다.
Quiz
로그인하지 않은 사용자가 로그인한 사용자만 접근할 수 있는 페이지에 접근하려고 할 때, 일반적인 웹 애플리케이션의 동작 방식은 무엇일까요?
접근 허용
에러 페이지 표시
로그인 페이지로 리다이렉션
아무런 반응 없음
Answer 2
0
안녕하세요, DevFit 님! 공식 서포터즈 codesweaver 입니다.
컨트롤러 에서 @ModelAttribute 사용 하는 경우는
HTML Form 에서 넘어온 값들을 DTO 객체에 간편하게 담아 쓰기 위해 사용하는데요,
가렴 Form의 인풋 박스가 다음과 같이 있을때
<input type="text" name="userName" />
<input type="password" name="userPassword" />
이 값을 request 에서 하나씩 추출하여 사용 하기는 불편하겠지요? Form 요소가 추가 될 때마다 계속 request.get(); 을 호출하여 값을 받아주어야 하니까요.
이럴때 Form을 받는 DTO 객체를 하나 만들어 편리하게 사용할 수 있습니다.
@Getter @Setter
class XxxFormDto {
private String userName;
private String userPassword;
}
이처럼 DTO를 생성하고 컨트롤러에서 다음과 같이 하면 폼 요소의 '이름'과 DTO 객체의 '변수명'을 기준으로 자동으로 값을 할당합니다.
@Controller
public classs XxxController {
public String login(@ModelAttribute XxxFormDto dto) {
... some code ...
}
}
감사합니다.





