[Study] BE/Spring & SpringBoot

[스프링 입문 - 김영한] 세션 5 회원 관리 예제 - 웹 MVC 개발

stop-zero 2023. 9. 25. 21:56

회원 웹 기능 - 홈 화면 추가

@Controller
public class HomeController {
    @GetMapping("/")
    public String home(){
        return "home";
    }
}

단순한 회원 등록과 조회를 할 수 있는 사이트생성 > home.html 호출

 

home.html localhost 8080 기본 페이지
회원가입 /members/new
회원목록 > /members

- 이전에 만들었던 static > index.html 보다 controller가 우선순위가 높다. 

- controller 여부 확인 후 없으면 static 파일

 

회원 웹 기능 - 등록

MemberController

@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());

        System.out.println("member = " + member.getName());

        memberService.join(member);

        return "redirect:/";
    }

 

creatememberForm.html : 회원가입 폼 태그 안에 input 텍스트 등록하면 이름의 key와 value값이 서버로 넘어간다. 

MemberForm 에 getter setter 생성 , PostMapping("/members/new") redirect 홈으로  아직 로그가 없어서 보이지 않음.

회원가입 들어가면 memebers/new/ 매핑 후 createmembersForm.html (= 값을 입력할 수 있는 폼)

+ post = 전달, get = 조회  

 

회원 웹 기능 - 조회

    @GetMapping("/members")
    public String list(Model model){
        List<Member> members = memberService.findMembers();
        model.addAttribute("members", members);
        return "members/memberList";
    }

findMembers() : 멤버 조회

addAttribute : 멤버 리스트 자체를 model 에 담아서 view 템플릿으로 전달

 

     <tr th:each="member : ${members}">
        <td th:text="${member.id}"></td>
        <td th:text="${member.name}"></td>
      </tr>

Member > get.id, get.name에 접근해서 값을 출력

 

현재는 메모리에 데이터가 저장되어 있기에 서버를 내렸다가 다시 키게 되면 데이터가 사라진다. > 데이터 베이스 적용!

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