조회 하는 기능까지 구현하였다!
package hello.hellospring.controller;
import hello.hellospring.domain.Member;
import hello.hellospring.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
@Controller
public class MemberController {
private final MemberService memberService;
@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:/";
}
@GetMapping("/members")
public String list(Model model){
List<Member> members = memberService.findMembers();
model.addAttribute("members",members);
return "members/memberList";
}
"/members" 를 GetMapping으로 주고
Member형식의 리스트 members를 만들어 findMembers()를 쓰게되면 멤버를
다 가져올 수 있게 된다.
members자체를 모델에 담아서 화면에 넘기고
members/memberList를 반환한다!
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">
<div>
<table>
<thead>
<tr>
<th>#</th>
<th>이름</th>
</tr>
</thead>
<tbody>
<tr th:each="member : ${members}">
<td th:text="${member.id}"></td>
<td th:text="${member.name}"></td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /container -->
</body>
</html>
th:each 는 루프문이다.! 첫번째 객체를 꺼내와서
id name을 꺼내와서 출력한다. 이때 getId , getName을 이용해서
프로퍼티 방식으로 꺼내오게된다.

가입 후 조회기능을 하니 이렇게 조회된 화면을 확인할 수 있었다.
<!DOCTYPE HTML>
<html> <body>
<div class="container">
<div>
<table>
<thead>
<tr>
<th>#</th>
<th>이름</th> </tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>이재혁</td> </tr>
</tbody>
</table>
</div>
</div> <!-- /container -->
</body>
</html>
크롬의 페이지 소스보는 기능을 사용하여
살펴 보니
타임리프 문법이 있던 곳이 랜더링 되어 있는 것을
확인할 수 있었다!
현재는 데이터가 메모리에 있기때문에 서버를 내렸다가 다시 키게되면
데이터가 다 지워지게된다. 그렇기에 해결 방안에 대하여
다음 포스트에 정리할 예정이다.
'웹프로그래밍 > Spring 입문' 카테고리의 다른 글
| 16. 순수 JDBC (0) | 2021.06.24 |
|---|---|
| 15. H2 데이터베이스 설치 (0) | 2021.06.24 |
| 13. 회원 웹 기능 - 등록 (0) | 2021.06.23 |
| 12. 회원 웹기능 - 홈 화면 추가 (0) | 2021.06.23 |
| 11. 자바 코드로 직접 스프링 빈 등록하기 (0) | 2021.06.22 |