Spring/Spring_inflearn

[Spring 입문] Form, Thymeleaf

2024. 8. 12. 22:23
목차
  1. 1. Form
  2. 2. Thymeleaf

 

 

1. Form

 

public class Member {

    private Long id;    // 시스템이 저장하는 id
    private String name;

    public Long getId() {
        return id;
    }
    public String getName() {
        return name;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }
}
public class MemberForm {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div class="container">
        <form action="/members/new" method="post">
            <div class="form-group">
                <label for="name">이름</label>
                <input type="text" id="name" name="name" placeholder="이름을 입력하세요">
            </div>
            <button type="submit">등록</button>
        </form>
    </div>
</body>
</html>
// 뷰 (view) 로 리턴
@Controller     // 컴포넌트 스캔 + 자동 의존관계 설정 방식
public class MemberController {

    private final MemberService memberService;

    // @Autowired 를 쓰려면 @ 로 연결해줘야 함. 즉, MemberService 에 @Service 가 달려있어야 함.
    // 혹은 SpringConfig에 @Bean으로 등록되어야 함
    @Autowired
    public MemberController(MemberService memberService) {
        this.memberService = memberService;
    }

    @GetMapping("/members/new")
    public String createForm() {
        return "members/createMemberForm";
    }

    @PostMapping("/members/new")
    public String create(MemberForm form) {
        Member member = new Member();
        member.setName(form.getName());

        memberService.join(member);

        return "redirect:/";
    }
}

 

Member 클래스는 DB와 바로 맞닿아있는 VO 개념인거같고

MemberForm 클래스는 중간다리를 하는 DTO 인 것 같다.

그래서 MemberForm에 값을 담고 그 값을 Member로 옮겨 담아서 DB 처리를 하는 것 같다.

 

 

 

 

재밌는(?) 점은 김영한 쌤은 MemberForm을 따로 패키지를 안만들고 controller에 넣었다는 점이다.

흠. 왜지?

DTO 처럼, 

VO - DTO - DAO - Service - Controller 순으로 하면 안되나? 직관적이에

Domain - Form - Repository - Service - Controller

 

이러면 딱 맞아떨어지는데~~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. Thymeleaf

@GetMapping("/members")
    public String list(Model model) {
        List<Member> members = memberService.findMembers();
        model.addAttribute("members", members);
        return "members/memberList";
    }
<div class="container">
    <div>
      <table>
        <thead>
        <tr>
          <th>#</th>
          <th>이름</th>
        </tr>
        </thead>
        <tbody>
<!--        ${} : Model 안에 있는 값 꺼내기 -->
<!--        th:each : 루프를 돌면서 순서대로 값을 꺼냄 -->
<!--        객체 클래스에서 정의한 Getter로 값을 꺼냄 -->
        <tr th:each="member : ${members}">
          <td th:text="${member.id}"></td>
          <td th:text="${member.name}"></td>
        </tr>
        </tbody>
      </table>
    </div>
  </div>

 

 

저작자표시 비영리 동일조건 (새창열림)
  1. 1. Form
  2. 2. Thymeleaf
'Spring/Spring_inflearn' 카테고리의 다른 글
  • [Spring 입문] Spring DB 접근 기술 -- 순수 JDBC
  • [Spring 입문] Spring DB 접근 기술 -- H2 DB
  • [Spring 입문] 스프링 빈 등록, 의존성 주입
  • [Spring 입문] member Service
함s
함s
개발함
함s
함함ː
함s

CALENDAR

«   2025/05   »
일 월 화 수 목 금 토
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • 분류 전체보기 (210)
    • TIL (6)
      • thought (2)
    • Algorithm (81)
      • Basic (66)
      • Greedy (5)
      • Implementation (3)
      • DFS BFS (7)
      • Sorting (0)
    • Front (29)
      • HTML Css (7)
      • JavaScript (17)
      • Jquery (2)
      • Vue.js (2)
      • React.js (1)
    • Node.js (5)
    • Java (43)
      • Basic (22)
      • MVC -- JSP & Servlet (18)
      • Handler (1)
      • Data (2)
    • Spring (27)
      • Spring_inflearn (9)
      • Spring Boot (7)
      • MyBatis (1)
      • Spring Data JPA (7)
      • REST API (3)
    • SQL (2)
    • Mac (13)
    • Git (4)
    • Project (0)

블로그 메뉴

  • 홈
  • 방명록
  • 글쓰기

인기 글

최근 글

hELLO · Designed By 정상우.
함s
[Spring 입문] Form, Thymeleaf
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.