ㅇ 홈화면 추가
templates 디렉토리 밑에 홈화면 html파일을 만들어보자.
홈화면에는 회원가입, 회원목록이 있어야한다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class = "container">
<div>
<h1>Hello Spring</h1>
<p>회원 기능</p>
<p>
<a href="/members/new">회원 가입</a>
<a href="/members">회원 목록</a>
</p>
</div>
</div>
</body>
</html>
그리고 홈화면으로 갈수있는 HomeController를 만들어준다.
ㅁ HomeController
@Controller
public class HomeController {
@GetMapping("/")
public String home(){
return "home";
}
}
return "home"하면 templates 에서 home.html파일을 연결해준다.
그러면 localhost:8080 에 들어가면
이렇게 뜬다. 먼저 회원가입 버튼에 기능을 넣어보자.
ㅇ 등록
먼저 MemberForm클래스를 만들어주자.
public class MemberForm {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ㅁ createMemberForm.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<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> <!-- /container -->
</body>
</html>
templates 에 members 디렉토리를 만들고 이 html 파일을 넣어주자. 그다음에 membercontroller에
@GetMapping("/members/new")
public String createForam() {
return "members/createMemberForm";
}
@PostMapping("/members/new")
public String create(MemberForm form) {
Member member = new Member();
member.setName(form.getName());
memberService.join(member);
return "redirect:/";
}
겟 메서드로 createMemberForm.html파일을 불러올수있게 하고, 포스트메서드로 회원등록해줄수 있는 create를 넣어준다.
return "redirect:/" 하면 홈화면으로 리다이렉트해준다.
이런 화면이 뜰것이고 등록을 하게되면 홈화면으로 다시 이동한다.
그 다음 회원목록 조회를 만들어보자.
ㅇ 조회
ㅁ memberList.html
<!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>
templates -> members 에 이 파일을 넣어주고, MemberController에
@GetMapping("/members")
public String list(Model model) {
List<Member> members = memberService.findMembers();
model.addAttribute("members", members);
return "members/memberList";
}
리스트를 불러올수 있게 list 메서드를 작성해준다.
ㅁ MemberController
@Controller
public class MemberController {
private final MemberService memberService;
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
@GetMapping("/members/new")
public String createForam() {
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";
}
}
이렇게 하면 회원목록 버튼을 누르게 되면 아래와 같이 뜬다.
지금 이렇게 데이터가 쌓이는게 보인다. 하지만 이건 그냥 단순히 JVM의 힙 메모리에 저장된것이기 때문에 애플리케이션을 껐다 키면 사라진다. 그래서 우린 데이터베이스를 사용해 거기에서 데이터를 관리해야한다.
'Java > spring' 카테고리의 다른 글
spring security를 알아보자 - 2 (0) | 2024.03.12 |
---|---|
spring security를 알아보자 - 1 (0) | 2024.03.04 |
Spring 입문 - AOP (1) | 2024.01.25 |
spring 입문 - 스프링 DB 접근 (0) | 2024.01.25 |
spring 입문 - MVC, 스프링빈 등록까지 (0) | 2024.01.19 |