본문 바로가기
Spring/스프링 입문

[Spring] 5. 회원 관리 예제 - 웹 MVC 개발

by ♡˖GYURI˖♡ 2023. 11. 27.
728x90

1. 회원 웹 기능 - 홈 화면 추가

홈 컨트롤러 추가

package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
	@GetMapping("/")
	public String home() {
		return "home";
	}
}

 

회원 관리용 홈

<!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> <!-- /container -->
</body>
</html>

 

참고 : 컨트롤러가 정적 파일보다 우선순위가 높다.

 

 

 

2. 회원 웹 기능 - 등록

회원 등록 폼 컨트롤러

@Controller
public class MemberController {
	private final MemberService memberService;
	@Autowired
	public MemberController(MemberService memberService) {
		this.memberService = memberService;
	}
	@GetMapping(value = "/members/new")
	public String createForm() {
		return "members/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>

 

웹 등록 화면에서 데이터를 전달 받을 폼 객체

package hello.hellospring.controller;
public class MemberForm {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
    	this.name = name;
	}
}

 

회원 컨트롤러에서 회원을 실제 등록하는 기능

@PostMapping(value = "/members/new")
public String create(MemberForm form) {
    Member member = new Member();
    member.setName(form.getName());
    memberService.join(member);
    return "redirect:/";
}

 

 

3. 회원 웹 기능 - 조회

회원 컨트롤러에서 조회 기능

@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>

 

 

 

 

 


https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

'Spring > 스프링 입문' 카테고리의 다른 글

[Spring] 7. AOP  (1) 2023.12.03
[Spring] 6. 스프링 DB 접근 기술  (0) 2023.11.30
[Spring] 4. 스프링 빈과 의존관계  (0) 2023.11.09
[Spring] 3. 회원 관리 예제  (1) 2023.10.31
[Spring] 2-3. API  (1) 2023.10.31