jpashop : joinForm, member join
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package com.example.jpashop.controller;
|
||||
|
||||
import com.example.jpashop.domain.Address;
|
||||
import com.example.jpashop.domain.Member;
|
||||
import com.example.jpashop.service.MemberService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
@Controller
|
||||
@RequiredArgsConstructor
|
||||
public class MemberController {
|
||||
|
||||
private final MemberService memberService;
|
||||
|
||||
@GetMapping("/members/new")
|
||||
public String createForm(Model model) {
|
||||
model.addAttribute("memberForm", new MemberForm());
|
||||
return "members/createMemberForm";
|
||||
}
|
||||
|
||||
@PostMapping("/members/new")
|
||||
public String create(@Valid MemberForm memberForm, BindingResult result) {
|
||||
|
||||
if (result.hasErrors()) {
|
||||
return "members/createMemberForm";
|
||||
}
|
||||
|
||||
Address address = new Address(memberForm.getCity(), memberForm.getStreet(), memberForm.getZipcode());
|
||||
|
||||
Member member = Member.builder()
|
||||
.name(memberForm.getName())
|
||||
.address(address)
|
||||
.build();
|
||||
|
||||
memberService.join(member);
|
||||
return "redirect:/";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.example.jpashop.controller;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
|
||||
@Getter @Setter
|
||||
public class MemberForm {
|
||||
|
||||
@NotEmpty(message = "회원 이름은 필수 입니다.")
|
||||
private String name;
|
||||
private String city;
|
||||
private String street;
|
||||
private String zipcode;
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.example.jpashop.domain;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.*;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
@@ -9,6 +8,9 @@ import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Getter @Setter
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class Member {
|
||||
|
||||
@Id @GeneratedValue
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head th:replace="fragments/header :: header" />
|
||||
<style>
|
||||
.fieldError {
|
||||
border-color: #bd2130;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div th:replace="fragments/bodyHeader :: bodyHeader"/>
|
||||
<form role="form" action="/members/new" th:object="${memberForm}" method="post">
|
||||
<div class="form-group">
|
||||
<label th:for="name">이름</label>
|
||||
<input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요"
|
||||
th:class="${#fields.hasErrors('name')}? 'form-control fieldError' : 'form-control'">
|
||||
<p th:if="${#fields.hasErrors('name')}" th:errors="*{name}">Incorrect date</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:for="city">도시</label>
|
||||
<input type="text" th:field="*{city}" class="form-control" placeholder="도시를 입력하세요">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:for="street">거리</label>
|
||||
<input type="text" th:field="*{street}" class="form-control" placeholder="거리를 입력하세요">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label th:for="zipcode">우편번호</label>
|
||||
<input type="text" th:field="*{zipcode}" class="form-control" placeholder="우편번호를 입력하세요">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</form>
|
||||
<br/>
|
||||
<div th:replace="fragments/footer :: footer" />
|
||||
</div> <!-- /container -->
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user