출처 : 인프런 강의 중 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
28강 중 19강까지
@GetMapping("/") 는 기본 localhost:8080 을 의미한다. 즉 welcome page
앞선 강의에서(7강 정적컨텐츠) welcome page는 따로 설정하지 않으면 resoureces > static > index.html을 찾는다고했다.
이번에 mvc 개발 강의에서는 컨트롤러에 Mapping하여 view page를 지정해주었다. (index.html 보다 controller가 우선순위가 높다)
spring에서 배울때 Mapping 어노테이션을 주로 @RequestMapping으로 통일해서 사용하는걸 배웠는데
spring boot는 클라이언트가 요청하는 방식에 따라 @GetMapping(get방식) @PostMapping(post방식)으로 나뉘어져 있어 따로 method를 표기하지 않아도 되고 url이 동일해도 식별이 가능하기 때문에 괜찮다
(get은 조회시, post는 등록시 사용)
회원 컨트롤러에서 조회 기능
@GetMapping(value = "/members")
public String list(Model model) {
List<Member> members = memberService.findMembers();
model.addAttribute("members", members);
return "members/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>
<tr th:each="member: ${members}">
<td th:text = "${member.id}"></td>
<td th:text = "${member.name}"></td>
</tr>
타임리프 문법 중 반복문(th:each)으로 ${members} 컨트롤러에서 model.addAttribute 로 전달된 members 값을 반복하여 새로운 변수 member에 담았다.
타임리프 문법 텍스트출력(th:text) ${member.id} 값을 출력한다
spring을 배웠다면 이번 회차 강의는 쉬웠을 것 같다. (엄청 쉬웠음)
딱히 다른 내용도 없고 컨트롤러에서 어노테이션 조금 다른것과 뷰단에서 타임리프 문법이 사용된 것 외엔 크게 다른게 없었다
'Programming > Java \ Spring' 카테고리의 다른 글
🔥자바스터디🔥 자바의 정석 CH2 변수의 선언과 초기화, 데이터 타입, 형변환 (0) | 2021.05.16 |
---|---|
🔥자바스터디🔥 자바의 정석 CH1 자바언어의 특징, JVM, 자바 컴파일러 (0) | 2021.05.12 |
[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(스프링 빈과 의존관계) (0) | 2021.03.29 |
[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(회원 관리 예제 - 백엔드 개발) (0) | 2021.03.29 |
[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (0) | 2021.03.29 |