Back-End/Spring Boot
[ Spring boot ] DTO 객체 및 폼과 뷰페이지 ②
2CHAE._.EUN
2022. 5. 8. 02:43
Form에서 타임리프 문법 사용하기
1. form action을 타임리프 문법으로 사용하기
<form action="#" th:action="@{/SignUpView}" th:object="${signUpDTO}" method="post">
<!-- 타임리프 문법으로 받은 action 값을 form의 action으로 넘겨준다.-->
<!-- th:object를 사용해서 객체를 받아서 사용할 수 있다. -->
<label for="UserEmail">이메일</label>
<input type="email" th:field="*{UserEmail}">
</form>
th:field 부분이 id="UserEmail" name="UserEmail" value 부분으로 들어가게 된다.
label 작성시 for 값에는 타임리프 문법에서 사용한 변수 이름을 똑같이 사용하면 된다.
*{}안에는 별도의 공백이나 여분이 있으면 안된다.
컨트롤러쪽에서는 Form 페이지쪽으로 signUpDTO 객체를 반드시 넘겨줘야한다.
@GetMapping("/SignUpForm")
public String signUpPage(Model model){
model.addAttribute("singUpDTO", new SignUpDTO() );
// 객체를 생성하는 과정에서 SignUpDTO.java 파일에서는 별도의 생성자를 생성하지 않아야한다.
// 혹은 기본 생성자를 생성해놓고 따로 생성자를 생성해야한다.
return "/SignUp/SignUpForm";
}
signUpDTO라는 이름으로 객체를 Form 페이지로 전달을 하게 된다.
2. th:value 사용하기
<h3 th:text="${ signUpDTO.getUserName() } + '님 회원가입을 축하합니다'"></h3>
<input type="text" th:value="${signUPDTO.getUserName()}">
th:value의 값이 text로 넘어가서 처리가 된다.