Programming/Java \ Spring

[인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(회원 관리 예제 - 웹 MVC 개발)

출처 : 인프런 강의 중 스프링 입문 - 코드로 배우는 스프링 부트, 웹 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 boot - Thymeleaf 기본 문법

1. Thymeleaf 기본 표현 자세한 문법은 Thymeleaf 사이트의 튜토리얼을 참고하는게 좋습니다. 기본 표현, 조건문, 반복문 세가지를 중점으로 보겠습니다. Thymeleaf Document 참고 (https://www.thymeleaf.org/doc..

eblo.tistory.com

 

spring을 배웠다면 이번 회차 강의는 쉬웠을 것 같다. (엄청 쉬웠음)

딱히 다른 내용도 없고 컨트롤러에서 어노테이션 조금 다른것과 뷰단에서 타임리프 문법이 사용된 것 외엔 크게 다른게 없었다